Supported types
Automatically supported types
Easy Save can automatically save the following types:
- Primitive types
- Structs
- Enums
- Components/MonoBehaviours
- ScriptableObjects
- Non-generic classes (a parameterless constructor is required for Universal Windows Platform)
- Arrays, Lists, Dictionaries, Queues, Stacks, Tuples, ArrayLists, NativeArrays and HashSets of supported types
- Anything in the Natively Supported Types list below
A field in a supported class will be serialized if it:
- Is public, or has a [SerializeField] or [ES3Serializable] attribute
- Is not const or readonly
- Does not have the [Obsolete], [NonSerialized] or [ES3NonSerializable] attribute
- Is a supported type
Fields containing objects which derive from UnityEngine.Object will be saved by reference (see the Saving and Loading References guide for more info).
Manually adding support for a type
If your fields or type are not supported automatically or natively you may be able to add support for them manually by creating an ES3Type. This is explained in detail in the Controlling serialization using ES3Types guide.
Natively supported types
Natively supported types are those that the Easy Save team has manually added support for.
Most Unity types have to be manually supported as most of their fields are not automatically supportable.
Primitive Types
- int
- float
- string
- byte
- bool
- char
- double
- long
- short
- uint
- ulong
- ushort
- intPtr
- uintPtr
- Enum
- DateTime
- Guid
Collections
- Array [ ]
- 2D Array [,]
- 3D Array [,,]
- Dictionary<TKey, TValue>
- List<T>
- Queue<T>
- HashSet<T>
- Stack<T>
- Tuple<T>
- ArrayList
- NativeArray<T>
- ConcurrentDictionary<T>
Unity Types
Click a type below to see which of it’s fields and properties are supported.
AnimationCurve- keys
- preWrapMode
- postWrapMode
- name
- samples
- channels
- frequency
- sampleData
- boneIndex0
- boneIndex1
- boneIndex2
- boneIndex3
- weight0
- weight1
- weight2
- weight3
- center
- size
- center
- size
- enabled
- isTrigger
- contactOffset
- material
- size
- density
- isTrigger
- usedByEffector
- offset
- sharedMaterial
- enabled
- fieldOfView
- nearClipPlane
- farClipPlane
- renderingPath
- hdr
- orthographicSize
- orthographic
- opaqueSortMode
- transparencySortMode
- depth
- aspect
- cullingMask
- eventMask
- backgroundColor
- rect
- pixelRect
- worldToCameraMatrix
- projectionMatrix
- nonJitteredProjectionMatrix
- useJitteredProjectionMatrixForTransparentRendering
- clearFlags
- stereoSeparation
- stereoConvergence
- cameraType
- stereoMirrorMode
- stereoTargetEye
- targetDisplay
- useOcclusionCulling
- cullingMatrix
- layerCullSpherical
- depthTextureMode
- clearStencilAfterLightingPass
- enabled
- hideFlags
- center
- radius
- height
- direction
- enabled
- isTrigger
- contactOffset
- material
- enabled
- type
- mode
- dampen
- dampenMultiplier
- bounce
- bounceMultiplier
- lifetimeLoss
- lifetimeLossMultiplier
- minKillSpeed
- maxKillSpeed
- collidesWith
- enableDynamicColliders
- enableInteriorCollisions
- maxCollisionShapes
- quality
- voxelSize
- radiusScale
- sendCollisionMessages
- r
- g
- b
- a
- r
- g
- b
- a
- enabled
- color
- range
- enabled
- color
- enabled
- rateOverTime
- rateOverTimeMultiplier
- rateOverDistance
- rateOverDistanceMultiplier
- enabled
- multiplier
- hideFlags
- material
- name
- enabled
- x
- y
- z
- xMultiplier
- yMultiplier
- zMultiplier
- space
- randomized
- layer
- isStatic
- tag
- name
- hideFlags
- children
- components
- colorKeys
- alphaKeys
- mode
- alpha
- time
- color
- time
- enabled
- mode
- curve
- curveMultiplier
- time
- value
- inTangent
- outTangent
- type
- color
- intensity
- bounceIntensity
- shadows
- shadowStrength
- shadowResolution
- shadowCustomResolution
- shadowBias
- shadowNormalBias
- shadowNearPlane
- range
- spotAngle
- cookieSize
- cookie
- flare
- renderMode
- bakedIndex
- cullingMask
- areaSize
- lightmappingMode
- enabled
- hideFlags
- enabled
- ratio
- useRandomDistribution
- light
- useParticleColor
- sizeAffectsRange
- alphaAffectsIntensity
- range
- rangeMultiplier
- intensity
- intensityMultiplier
- maxLights
- enabled
- limitX
- limitXMultiplier
- limitY
- limitYMultiplier
- limitZ
- limitZMultiplier
- limit
- limitMultiplier
- dampen
- separateAxes
- space
- duration
- loop
- prewarm
- startDelay
- startDelayMultiplier
- startLifetime
- startLifetimeMultiplier
- startSpeed
- startSpeedMultiplier
- startSize3D
- startSize
- startSizeMultiplier
- startSizeX
- startSizeXMultiplier
- startSizeY
- startSizeYMultiplier
- startSizeZ
- startSizeZMultiplier
- startRotation3D
- startRotation
- startRotationMultiplier
- startRotationX
- startRotationXMultiplier
- startRotationY
- startRotationYMultiplier
- startRotationZ
- startRotationZMultiplier
- randomizeRotationDirection
- startColor
- gravityModifier
- gravityModifierMultiplier
- simulationSpace
- customSimulationSpace
- simulationSpeed
- scalingMode
- playOnAwake
- maxParticles
- shader
- renderQueue
- shaderKeywords
- globalIlluminationFlags
- properties
- Note: custom properties need to be saved manually.
- col0
- col1
- col2
- col3
- bounds
- subMeshCount
- boneWeights
- bindposes
- vertices
- normals
- tangents
- uv
- uv2
- uv3
- uv4
- colors32
- triangles
- subMeshes
- sharedMesh
- convex
- inflateMesh
- skinWidth
- enabled
- isTrigger
- contactOffset
- material
- sharedMesh
- additionalVertexStreams
- enabled
- shadowCastingMode
- receiveShadows
- materials
- lightmapIndex
- realtimeLightmapIndex
- lightmapScaleOffset
- motionVectorGenerationMode
- realtimeLightmapScaleOffset
- lightProbeUsage
- lightProbeProxyVolumeOverride
- probeAnchor
- reflectionProbeUsage
- sortingLayerName
- sortingLayerID
- sortingOrder
- mode
- curveMultiplier
- curveMax
- curveMin
- constantMax
- constantMin
- constant
- curve
- mode
- gradientMax
- gradientMin
- colorMax
- colorMin
- color
- gradient
- enabled
- separateAxes
- strength
- strengthMultiplier
- strengthX
- strengthXMultiplier
- strengthY
- strengthYMultiplier
- strengthZ
- strengthZMultiplier
- frequency
- damping
- octaveCount
- octaveMultiplier
- octaveScale
- quality
- scrollSpeed
- scrollSpeedMultiplier
- remapEnabled
- remap
- remapMultiplier
- remapX
- remapXMultiplier
- remapY
- remapYMultiplier
- remapZ
- remapZMultiplier
- time
- hideFlags
- collision
- colorBySpeed
- colorOverLifetime
- emission
- externalForces
- forceOverLifetime
- inheritVelocity
- lights
- limitVelocityOverLifetime
- main
- noise
- rotatonBySpeed
- rotationOverLifetime
- shape
- sizeBySpeed
- sizeOverLifetime
- subEmitters
- textureSheetAnimation
- trails
- trigger
- useAutoRandomSeed
- velocityOverLifetime
- isPaused
- isPlaying
- isStopped
- dynamicFriction
- staticFriction
- bounciness
- frictionCombine
- bounceCombine
- bounciness
- friction
- points
- pathCount
- paths
- density
- isTrigger
- usedByEffector
- offset
- sharedMaterial
- enabled
- x
- y
- z
- w
- x
- y
- width
- height
- anchorMin
- anchorMax
- anchoredPosition
- sizeDelta
- pivot
- offsetMin
- offsetMax
- localPosition
- localRotation
- localScale
- parent
- hideFlags
- enabled
- x
- xMultiplier
- y
- yMultiplier
- z
- zMultiplier
- separateAxes
- range
- enabled
- x
- xMultiplier
- y
- yMultiplier
- z
- zMultiplier
- separateAxes
- name
- maximumLOD
- enabled
- shapeType
- randomDirectionAmount
- sphericalDirectionAmount
- alignToDirection
- radius
- angle
- length
- box
- meshShapeType
- mesh
- meshRenderer
- skinnedMeshRenderer
- useMeshMaterialIndex
- meshMaterialIndex
- useMeshColors
- normalOffset
- meshScale
- arc
- enabled
- size
- sizeMultiplier
- x
- xMultiplier
- y
- yMultiplier
- z
- zMultiplier
- separateAxes
- range
- enabled
- size
- sizeMultiplier
- x
- xMultiplier
- y
- yMultiplier
- z
- zMultiplier
- separateAxes
- bones
- rootBone
- quality
- sharedMesh
- updateWhenOffscreen
- skinnedMotionVectors
- localBounds
- enabled
- shadowCastingMode
- receiveShadows
- materials
- lightmapIndex
- realtimeLightmapIndex
- lightmapScaleOffset
- motionVectorGenerationMode
- realtimeLightmapScaleOffset
- lightProbeUsage
- lightProbeProxyVolumeOverride
- probeAnchor
- reflectionProbeUsage
- sortingLayerName
- sortingLayerID
- sortingOrder
- blendShapeWeights
- center
- radius
- enabled
- isTrigger
- contactOffset
- material
- texture
- textureRect
- pivot
- pixelsPerUnit
- border
- sprite
- color
- flipX
- flipY
- enabled
- shadowCastingMode
- receiveShadows
- sharedMaterials
- lightmapIndex
- realtimeLightmapIndex
- lightmapScaleOffset
- motionVectorGenerationMode
- realtimeLightmapScaleOffset
- lightProbeUsage
- lightProbeProxyVolumeOverride
- probeAnchor
- reflectionProbeUsage
- sortingLayerName
- sortingLayerID
- sortingOrder
- properties
- systems
- types
- font
- text
- supportRichText
- resizeTextForBestFit
- resizeTextMinSize
- resizeTextMaxSize
- alignment
- alignByGeometry
- fontSize
- horizontalOverflow
- verticalOverflow
- lineSpacing
- fontStyle
- onCullStateChanged
- maskable
- color
- raycastTarget
- material
- useGUILayout
- runInEditMode
- enabled
- tag
- name
- hideFlags
- filterMode
- anisoLevel
- wrapMode
- mipMapBias
- rawTextureData
- enabled
- numTilesX
- numTilesY
- animation
- useRandomRow
- frameOverTime
- frameOverTimeMultiplier
- startFrame
- startFrameMultiplier
- cycleCount
- rowIndex
- uvChannelMask
- flipU
- flipV
- enabled
- ratio
- lifetime
- lifetimeMultiplier
- minVertexDistance
- textureMode
- worldSpace
- dieWithParticles
- sizeAffectsWidth
- sizeAffectsLifetime
- inheritParticleColor
- colorOverLifetime
- widthOverTrail
- widthOverTrailMultiplier
- colorOverTrail
- localPosition
- localRotation
- localScale
- parent
- enabled
- inside
- outside
- enter
- exit
- radiusScale
- x
- y
- x
- y
- z
- x
- y
- z
- w
- enabled
- x
- y
- z
- xMultiplier
- yMultiplier
- zMultiplier
- space