Skip to content

0.7.0-preview.19

Pre-release
Pre-release
Compare
Choose a tag to compare
@marwie marwie released this 26 May 02:43

[0.7.0] - 2020-03-03

Added

  • Added HasComponent/GetComponent/SetComponent methods that streamline access to components through entities when using the SystemBase class. These methods call through to EntityManager methods when in OnUpdate code and codegen access through ComponentDataFromEntity when inside of Entities.ForEach.
  • SubScene support for hybrid components, allowing Editor LiveLink (Player LiveLink is not supported yet).

Changed

  • Fixed an issue where shared component filtering could be broken until the shared component data is manually set/added when using a deserialized world.
  • Users can control the update behaviour of a ComponentSystemGroup via an update callback. See the documentation for ComponentSystemGroup.UpdateCallback, as well as examples in FixedRateUtils.
  • IDisposable and ICloneable are now supported on managed components.
  • World now exposes a Flags field allowing the editor to improve how it filters world to show in various tooling windows.
  • World.Systems is now a read only collection that does not allocate managed memory while being iterated over.
  • Updated package com.unity.platforms to version 0.2.1-preview.4.

Deprecated

  • Property World.AllWorlds is now replaced by World.All which now returns a read only collection that does not allocate managed memory while being iterated over.

Removed

  • Removed expired API implicit operator GameObjectConversionSettings(World)
  • Removed expired API implicit operator GameObjectConversionSettings(Hash128)
  • Removed expired API implicit operator GameObjectConversionSettings(UnityEditor.GUID)
  • Removed expired API TimeData.deltaTime
  • Removed expired API TimeData.time
  • Removed expired API TimeData.timeSinceLevelLoad
  • Removed expired API TimeData.captureFramerate
  • Removed expired API TimeData.fixedTime
  • Removed expired API TimeData.frameCount
  • Removed expired API TimeData.timeScale
  • Removed expired API TimeData.unscaledTime
  • Removed expired API TimeData.captureDeltaTime
  • Removed expired API TimeData.fixedUnscaledTime
  • Removed expired API TimeData.maximumDeltaTime
  • Removed expired API TimeData.realtimeSinceStartup
  • Removed expired API TimeData.renderedFrameCount
  • Removed expired API TimeData.smoothDeltaTime
  • Removed expired API TimeData.unscaledDeltaTime
  • Removed expired API TimeData.fixedUnscaledDeltaTime
  • Removed expired API TimeData.maximumParticleDeltaTime
  • Removed expired API TimeData.inFixedTimeStep
  • Removed expired API ComponentSystemBase.OnCreateManager()
  • Removed expired API ComponentSystemBase.OnDestroyManager()
  • Removed expired API ConverterVersionAttribute(int)

Fixed

  • Non-moving children in transform hierarchies no longer trigger transform system updates.
  • Fixed a bug where dynamic buffer components would sometimes leak during live link.
  • Fixed crash that would occur if only method in a module was generated from a [GenerateAuthoringComponent] type.
  • Entities.ForEach now throws a correct error message when it is used with a delegate stored in a variable, field or returned from a method.
  • Fix IL2CPP compilation error with Entities.ForEach that uses a tag component and WithStructuralChanges.
  • Entities.ForEach now marshals lambda parameters for DOTS Runtime when the lambda is burst compiled and has collection checks enabled. Previously using EntityCommandBuffer or other types with a DisposeSentinel field as part of your lambda function (when using DOTS Runtime) may have resulted in memory access violation.
  • Throw correct error message if accessing ToComponentDataArrayAsync CopyFromComponentDataArray or CopyFromComponentDataArrayAsync from an unrelated query.

[0.6.0] - 2020-02-17

Added

  • The [GenerateAuthoringComponent] attribute is now allowed on structs implementing IBufferElementData. An authoring component is automatically generated to support adding a DynamicBuffer of the type implementing IBufferElementData to an entity.
  • Added new SystemBase base class for component systems. This new way of defining component systems manages dependencies for the user (manual dependency management is still possible by accessing the SystemBase.Dependency field directly).
  • New ScheduleParallel methods in IJobChunk and Entities.ForEach (in SystemBase) to make parallel scheduling of jobs explicit. ScheduleSingle in IJobChunk indicates scheduling work to be done in a non-parallel manner.
  • New editor workflow to quickly and easily build LiveLink player using the BuildConfiguration API.
  • Adds Live Link support for GameObject scenes.
  • The SceneSystem API now also loads GameObject scenes via LoadSceneAsync API.
  • Added new build component for LiveLink settings in Unity.Scenes.Editor to control how initial scenes are handled (LiveLink all, embed all, embed first).
  • Users can now inspect post-procssed IL code inside Unity Editor: DOTS -> DOTS Compiler -> Open Inspector

Changed

  • The package com.unity.build has been merged into the package com.unity.platforms. As such, removed the dependency on [email protected] and replaced it with [email protected]. Please read the changelog of com.unity.platforms for more details.
  • Managed components are now stored in a way that will generate less GC allocations when entities change archetype.
  • Moved Unity.Entities.ICustomBootstrap from Unity.Entities.Hybrid to Unity.Entities.
  • World.Dispose() now completes all reader/writer jobs on the World's EntityManager before releasing any resources, to avoid use-after-free errors.
  • Fix AssemblyResolveException when loading a project with dependent packages that are using Burst in static initializers or InitializeOnLoad.
  • .sceneWithBuildSettings files that are stored in Assets/SceneDependencyCache are no longer rebuilt constantly. Because they are required for SubScene behaviour to work in the editor, if these are deleted they are recreated by OnValidate of the SubScene in the edited Scene. They should also be recreated on domain reload (restarting unity, entering/exiting playmode, etc).
  • EntityQuery.cs: Overloads of CreateArchetypeChunkArray, ToComponentDataArray, ToEntityArray, and CopyFromComponentDataArray that return a JobHandle (allowing the work to be done asynchronously) have been renamed to add Async to the title (i.e. ToComponentDataArrayAsync). The old overloads have been deprecated and an API Updater clause has been added.
  • Entities.WithName now only accepts names that use letters, digits, and underscores (not starting with a digit, no two consecutive underscores)
  • Updated package com.unity.properties to version 0.10.4-preview.
  • Updated package com.unity.serialization to version 0.6.4-preview.
  • The entity debugger now remembers whether chunk info panel is visible
  • The entity debugger now displays the full name for nested types in the system list
  • The entity debugger now sorts previously used filter components to the top of the filter GUI
  • Bumped burst version to include the new features and fixes including:
  • Fix an issue with function pointers being corrupted after a domain reload that could lead to hard crashes.
  • Fix potential deadlock between Burst and the AssetDatabase if burst is being used when building the database.

Deprecated

  • Method GetBuildSettingsComponent on class GameObjectConversionSystem has been renamed to GetBuildConfigurationComponent.
  • Method TryGetBuildSettingsComponent on class GameObjectConversionSystem has been renamed to TryGetBuildConfigurationComponent.
  • Member BuildSettings on class GameObjectConversionSettings has been renamed to BuildConfiguration.
  • Member BuildSettingsGUID on class SceneSystem has been renamed to BuildConfigurationGUID.

Removed

  • Removed expired API SceneSectionData.SharedComponentCount
  • Removed expired API struct SceneData
  • Removed expired API SubScene._SceneEntities
  • Removed expired API World.Active

Fixed

  • Ability to open and close SubScenes from the scene hierarchy window (Without having to move cursor to inspector window).
  • Ability to create a new empty Sub Scene without first creating a game object.
  • Improve performance of SubScene loading and change tracking in the editor.
  • Fixed regression where GetSingleton would create a new query on every call.
  • Fixed SubScenes trying to load an already loaded AssetBundle when loaded multiple times on the same player, but with different Worlds.
  • Make it clear that SubScenes in Prefabs are not supported.
  • Lambda job codegen tests now fail if the error message does not contain the expected contents.
  • Improved performance of setting up the world required for game object conversion
  • The chunkIndex parameter passed to IJobChunk.Execute() now has the correct value.
  • Fixed an error which caused entities with ISystemStateSharedComponentData components to not be cleaned up correctly.
  • Managed components containing Entity fields will now correctly serialize.
  • Fixed issue where BlobAssetVerifier will throw error if it can't resolve a type.
  • Exposed the Managed Component extensions for EntityQuery.
  • Entities.ForEach now identifies when this of the enclosing system is captured due to calling an extension method on it when compilation fails since the lambda was emitted as a member function
  • Entities.ForEach now reports when a field of the outer system is captured and used by reference when compilation fails since the lambda was emitted as a member function
  • Entities.ForEach does not erronously point to calling static functions as the source of the error when compilation fails since the lambda was emitted as a member function
  • Debugging inside of Entities.ForEach with Visual Studio 2017/2019 (some debugging features will need an upcoming update of the com.unity.ide.visualstudio package).
  • EntityQuery.ToComponentArray<T> with T deriving from UnityEngine.Component now correctly collects all data in a chunk
  • Fixed an issue with ComponentSystemBase.GetEntityQuery and EntityManager.CreateEntityQuery calls made with EntityQueryDesc not respecting read-only permissions.