3.0.0
Compare: 2.1.0...3.0.0
[3.0.0] - 2023-07-07
This release introduces support for addressable scenes.
There are breaking changes to settings. Please visit the settings page and re-apply all your settings as soon as you update.
Breaking Changes
SceneGuidToPathMapGenerator
is renamed toSceneDataMapsGenerator
.SceneGuidToPathMapGenerationTriggers
is renamed toSceneDataMapsGeneratorTriggers
.- Settings changes:
- Scene GUID to Path Map (new name Scene Data Maps) category:
- The category is renamed from
SceneGuidToPathMap
toSceneDataMaps
. - Key of the
GenerationTriggers
setting is changed fromSceneGuidToPathMap.GenerationTriggers
toSceneDataMaps.GenerationTriggers
. - Key of the
JsonFormatting
setting is changed fromSceneGuidToPathMap.JsonFormatting
toSceneDataMaps.JsonFormatting
. - Key of the
FailBuildIfGenerationFails
setting is changed fromSceneGuidToPathMap.FailBuildIfGenerationFails
toSceneDataMaps.FailBuildIfGenerationFails
.
- The category is renamed from
- Property Drawer category:
ShowInlineSceneInBuildUtility
setting is renamed toShowInlineToolbox
. The key is also changed fromPropertyDrawer.ShowInlineSceneInBuildUtility
toPropertyDrawer.ShowInlineToolbox
.
- Scene GUID to Path Map (new name Scene Data Maps) category:
- All exceptions are moved from the
Eflatun.SceneReference
namespace to the newEflatun.SceneReference.Exceptions
namespace. - Following valiation properties are removed from
SceneReference
. They are instead replaced with a more informativeState
property. See the Added section.IsInSceneGuidToPathMap
: removed.IsInBuildAndEnabled
: removed.IsSafeToUse
: removed.HasValue
: no longer public.
SceneReferenceOptionsAttribute
changes:Coloring
field is renamed toSceneInBuildColoring
. It still controls the same cases of coloring, but they are no longer all the coloring options. See the Changes section.UtilityLine
field is removed. Its replacement is theToolbox
field. See the Added section.
Added
SceneDataMapsGenerator
now also generates a scene GUID to address map. The map will be empty if addressables support is disabled.- New map generation triggers:
AfterPackagesResolve
: Triggers after packages are resolved.AfterAddressablesChange
: Triggers after addressable groups change.
- Property drawer can optionally color addressables scenes differently to draw attention to them.
- New inline utilties:
Make Addressable
: Makes the scene addressable.
- New settings:
- Addressables Support (
AddressablesSupport
) category:ColorAddressableScenes
setting: If enabled, scene references that have an addressable scene will be colored differently.- An info box that displays the current addressables support status.
- Addressables Support (
- New exceptions:
AddressNotFoundException
AddressNotUniqueException
AddressablesSupportDisabledException
SceneNotAddressableException
SceneGuidToAddressMapProvider
class: Provides a map of scene GUIDs to their address. Very similar toSceneGuidToPathMapProvider
, with the exception that it cannot provide an inverse map. This is because the address of an asset is not guaranteed to be unique. Instead, it providesGetGuidFromAddress
andTryGetGuidFromAddress
methods.SceneReference.FromAddress
factory method: Creates aSceneReference
from the given address.SceneReference.Address
property.SceneReference.State
property: This property replaces all previously exposed validation methods. It returns aSceneReferenceState
enum, which describes the state of theSceneReference
in terms of usage.SceneReferenceState
enum: Describes the state of theSceneReference
in terms of usage.Unsafe
: TheSceneReference
is not safe to use.Regular
: TheSceneReference
is safe to use, and it references a regular scene.Addressable
: TheSceneReference
is safe to use, and it references an addressable scene. This state is only possible if addressables support is enabled.
SceneReferenceOptionsAttribute
new fields:Toolbox
: Controls the visibility of the toolbox button. It replaces the now deletedUtilityLine
field.AddressableColoring
: Controls the coloring behaviour of the addressable scenes.
ToolboxBehaviour
enum. Replaces the now deletedUtilityLineBehaviour
enum with the same semantics.
Changed
- The concept of Utility Line is replaced with the concept of Toolbox. In summary, instead of drawing buttons as a second line below the field, we instead draw a small button to the end of the field on the same line. When clicked, a toolbox popup appears with all the utilities.
SceneInBuildColoring
argument (previously namedColoring
) ofSceneReferenceOptionsAttribute
still controls the same types of coloring cases, but since they used to be all the cases, the field was implicitly controlling the entire coloring behaviour. While its semantics are not changed, since there are now other coloring cases, it is no longer the only field that controls the entire coloring behaviour.