Releases: starikcetin/Eflatun.SceneReference
Releases · starikcetin/Eflatun.SceneReference
4.1.1
4.1.0
[4.1.0] - 2024-06-16
Compare: 4.0.0...4.1.0
Added
SceneReferenceUnityEventAdapterclass: A utilityMonoBehaviourthat allows using statically providedSceneReferences as parameters to aUnityEvent.- Utility Ignores: A set of settings that allow ignoring certain scenes from having the inline utilities.
4.0.0
Compare: 3.2.1...4.0.0
[4.0.0] - 2024-01-23
There are fundamental changes to the editor-time behaviour in this release. Please examine carefully before upgrading.
Breaking Changes
- From now on, map files are only generated during a build, and removed right after. In editor-time, maps are instead stored in and fetched from User Settings. You can remove the generated files and folders from your project, and remove the corresponding lines from your source control's ignore settings.
SceneDataMapsGenerator.Runnow takes a booelan argument that controls whether to ouput files or not.- Minimum compatible Unity version is set to
2020.3.48f1.
Changed
- Default value of
EditorLogLevelsetting is nowWarning, it was previouslyDebug. - Default value of
JsonFormattingsetting is nowNone, it was previouslyIndented.
Fixed
- Prevent null ref exceptions during runtime caused by uninitialized map providers when the maps are missing.
3.2.1
Compare: 3.2.0...3.2.1
[3.2.1] - 2023-12-27
Fixed
- Prevent
Scene GUID to path map file not found!errors and null reference exceptions inSceneAssetPostprocessorif the scene GUID to path map file is missing. - Prevent null reference exceptions at project launch due to addressables settings not being loaded yet.
- Ensure map files are always generated at editor startup, even if they are empty.
3.2.0
Compare: 3.1.3...3.2.0
[3.2.0] - 2023-11-20
Added
SceneReference.UnsafeReasonproperty: Provides the reasoning behind why aSceneReferencewas deemed unsafe.SceneReferenceUnsafeReasonenum: Possible reasons for aSceneReferenceto be deemed unsafe.
Fixed
SceneDataMapsGeneratorno longer runs on scene saves.
3.1.3
Compare: 3.1.2...3.1.3
[3.1.3] - 2023-11-12
Fixed
- Prevent null reference errors when addressables package is installed, but addressables settings are not initialized.
3.1.2
Compare: 3.1.1...3.1.2
Thanks to @Ale1 for their contribution (#75).
[3.1.2] - 2023-11-12
Fixed
- Backwards compatibility: Use
EditorStyles.miniButtoninstead of non-existentEditorStyles.iconButtonfor Unity versions earlier than 2022.1.
3.1.1
Compare: 3.1.0...3.1.1
[3.1.1] - 2023-07-22
Fixed
- Implemented workaround for a Unity bug that caused our settings page to throw exceptions and not display in Unity
2022.3.4f1.
3.1.0
Compare: 3.0.0...3.1.0
[3.1.0] - 2023-07-08
Added
- Log level of the editor logger can now be controlled with the new setting
Logging/Editor Log Level.
Removed
- Removed the suggestion to output generated files as indented for source control reasons. This is because we are suggesting to ignore the generated files.
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
SceneGuidToPathMapGeneratoris renamed toSceneDataMapsGenerator.SceneGuidToPathMapGenerationTriggersis renamed toSceneDataMapsGeneratorTriggers.- Settings changes:
- Scene GUID to Path Map (new name Scene Data Maps) category:
- The category is renamed from
SceneGuidToPathMaptoSceneDataMaps. - Key of the
GenerationTriggerssetting is changed fromSceneGuidToPathMap.GenerationTriggerstoSceneDataMaps.GenerationTriggers. - Key of the
JsonFormattingsetting is changed fromSceneGuidToPathMap.JsonFormattingtoSceneDataMaps.JsonFormatting. - Key of the
FailBuildIfGenerationFailssetting is changed fromSceneGuidToPathMap.FailBuildIfGenerationFailstoSceneDataMaps.FailBuildIfGenerationFails.
- The category is renamed from
- Property Drawer category:
ShowInlineSceneInBuildUtilitysetting is renamed toShowInlineToolbox. The key is also changed fromPropertyDrawer.ShowInlineSceneInBuildUtilitytoPropertyDrawer.ShowInlineToolbox.
- Scene GUID to Path Map (new name Scene Data Maps) category:
- All exceptions are moved from the
Eflatun.SceneReferencenamespace to the newEflatun.SceneReference.Exceptionsnamespace. - Following valiation properties are removed from
SceneReference. They are instead replaced with a more informativeStateproperty. See the Added section.IsInSceneGuidToPathMap: removed.IsInBuildAndEnabled: removed.IsSafeToUse: removed.HasValue: no longer public.
SceneReferenceOptionsAttributechanges:Coloringfield is renamed toSceneInBuildColoring. It still controls the same cases of coloring, but they are no longer all the coloring options. See the Changes section.UtilityLinefield is removed. Its replacement is theToolboxfield. See the Added section.
Added
SceneDataMapsGeneratornow 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:ColorAddressableScenessetting: 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:
AddressNotFoundExceptionAddressNotUniqueExceptionAddressablesSupportDisabledExceptionSceneNotAddressableException
SceneGuidToAddressMapProviderclass: 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 providesGetGuidFromAddressandTryGetGuidFromAddressmethods.SceneReference.FromAddressfactory method: Creates aSceneReferencefrom the given address.SceneReference.Addressproperty.SceneReference.Stateproperty: This property replaces all previously exposed validation methods. It returns aSceneReferenceStateenum, which describes the state of theSceneReferencein terms of usage.SceneReferenceStateenum: Describes the state of theSceneReferencein terms of usage.Unsafe: TheSceneReferenceis not safe to use.Regular: TheSceneReferenceis safe to use, and it references a regular scene.Addressable: TheSceneReferenceis safe to use, and it references an addressable scene. This state is only possible if addressables support is enabled.
SceneReferenceOptionsAttributenew fields:Toolbox: Controls the visibility of the toolbox button. It replaces the now deletedUtilityLinefield.AddressableColoring: Controls the coloring behaviour of the addressable scenes.
ToolboxBehaviourenum. Replaces the now deletedUtilityLineBehaviourenum 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.
SceneInBuildColoringargument (previously namedColoring) ofSceneReferenceOptionsAttributestill 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.