0.6.0-preview.24
Pre-release
Pre-release
[0.6.0] - 2020-02-17
Added
- The
[GenerateAuthoringComponent]
attribute is now allowed on structs implementingIBufferElementData
. An authoring component is automatically generated to support adding aDynamicBuffer
of the type implementingIBufferElementData
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 theSystemBase.Dependency
field directly). - New
ScheduleParallel
methods inIJobChunk
andEntities.ForEach
(inSystemBase
) to make parallel scheduling of jobs explicit.ScheduleSingle
inIJobChunk
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 loadsGameObject
scenes viaLoadSceneAsync
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 packagecom.unity.platforms
. As such, removed the dependency on[email protected]
and replaced it with[email protected]
. Please read the changelog ofcom.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 theWorld
'sEntityManager
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 orInitializeOnLoad
. .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 ofCreateArchetypeChunkArray
,ToComponentDataArray
,ToEntityArray
, andCopyFromComponentDataArray
that return a JobHandle (allowing the work to be done asynchronously) have been renamed to addAsync
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 version0.10.4-preview
. - Updated package
com.unity.serialization
to version0.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 classGameObjectConversionSystem
has been renamed toGetBuildConfigurationComponent
. - Method
TryGetBuildSettingsComponent
on classGameObjectConversionSystem
has been renamed toTryGetBuildConfigurationComponent
. - Member
BuildSettings
on classGameObjectConversionSettings
has been renamed toBuildConfiguration
. - Member
BuildSettingsGUID
on classSceneSystem
has been renamed toBuildConfigurationGUID
.
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 toIJobChunk.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 whenthis
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 functionEntities.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 functionEntities.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>
withT
deriving fromUnityEngine.Component
now correctly collects all data in a chunk- Fixed an issue with
ComponentSystemBase.GetEntityQuery
andEntityManager.CreateEntityQuery
calls made withEntityQueryDesc
not respecting read-only permissions.
[0.5.1] - 2020-01-28
Changed
- Constructor-related exceptions thrown during
World.CreateSystem
will now included the inner exception details. DefaultWorldInitialization.GetAllSystems
now returnsIReadOnlyList<Type>
instead ofList<Type>
DefaultWorldInitialization.AddSystemsToRootLevelSystemGroups
now takesIEnumerable<Type>
instead ofList<Type>
Fixed
- Fixed an issue where
BlobAssetReference
types was not guaranteed to be 8-byte aligned on all platforms which could result in failing to read Blob data in components correctly on 32-bit platforms. - Fixed issue in
MinMaxAABB.Equals()
comparingMin
to itself rather thanother
. Entities.ForEach
now properly treatsin
parameters ofDynamicBuffer
type as read-only- Fixed potential crash caused by a leaked job after an exception is thrown during a call to
IJobChunk.Schedule
. - Fixed regression in
ComponentSystemBase.GetSingleton()
where a new query would be created every timee the function is called.