Releases: needle-mirror/com.unity.entities
Releases · needle-mirror/com.unity.entities
1.3.8
[1.3.8] - 2024-11-08
Removed
- removing various material assets within entities (Test.mat and TestMaterial.mat).
Fixed
- Disable "new empty subscene" menu item on default untitled scene.
- Fix invalid queries generated for
IJobEntity
with[WithPresent(typeof(T))]
andEnabledRef<T>
and/orin T
in the same job.
1.3.5
[1.3.5] - 2024-10-04
Changed
- Local optimization in EntityManager.CopyEntitiesFrom
- Updated Mathematics dependency to version 1.3.2
- Updated Burst dependency to version 1.8.18
Fixed
- Fixed misleading documentation for Baker.IsActiveAndEnabled
- Improved build determinism by sorting inputs to build methods.
- Exception thrown under certain circumstances when a system was destroyed could break various DOTS editor windows.
1.3.2
[1.3.2] - 2024-09-06
Added
- Overloads for
ComponentLookup.HasComponent
,ComponentLookup.TryGetComponent
,BufferLookup.HasBuffer
, andBufferLookup.TryGetBuffer
adding parameterout bool entityExists
, as well as dedicatedComponentLookup.EntityExists
andBufferLookup.EntityExists
APIs, to allow user-code to distinguish entity non-existence from component non-existence without additional boilerplate, inside jobs. - adding missing dependencies
com.unity.modules.physics
,com.unity.modules.uielements
.
Changed
- Updated Burst dependency to version 1.8.17
- Add API docs discouraging the use of the
ExclusiveEntityTransaction.EntityManager
property. Many EntityManager operations are not safe to use within the context of an ExclusiveEntityTransaction; only the methods directly exposed byExclusiveEntityTransaction
are guaranteed to work correctly. - Add API docs discouraging the creation of
EntityQuery
objects with multiple query descriptions. This feature works in narrow contexts, but is known to cause errors and incompatibilities with other DOTS features. - Add API docs to note that enabling and disabling components inside
IJobEntityChunkBeginEnd.OnChunkBegin()
does not affect the entities iterated in the current chunk, as itschunkEnabledMask
has already been computed. - Zero-size
IBufferElementData
andISharedComponentData
structs no longer cause the TypeManager to throw during initialization. Zero-size buffer and shared components are usually a sign of pointless waste (especially buffer components, which have a significant chunk-memory cost even if the actual elements are empty), but they shouldn't cause a fatal error.
Fixed
- Various SGICE002 errors that happen if you type invalid C# code
- Various SGICE003 errors that happen if you type invalid C# code
- NullReferenceException on UnityObjectRef after Asset Garbage Collection (This fix requires editor versions 2022.3.43f1 and 6000.0.16f1 and beyond)
1.2.4
[1.2.4] - 2024-08-14
- Debug proxies (used by external debuggers) were sometimes using invalid field offsets when inspecting structs in blob assets. This led to incorrect values being reported in debugger watch windows. In particular, this would be triggered by the use of bool fields in blob asset structs.
- Entity version numbers could go back to 1 after reallocation in some edge cases.
- When building a content update, a temporary path was getting created in the drive root instead of the Library folder. This would also cause content update builds to grow in size every time they were built. The folder is now created in the Library correctly.
- Error in build when sprites are contained in subscenes has been removed.
- Regression in compilation time with assemblies with lots of system methods.
- EntityComponentStore leaked memory during domain reload.
1.3.0-pre.4
[1.3.0-pre.4] - 2024-07-17
Changed
- Updated Burst dependency to version 1.8.16
Deprecated
- The
ENABLE_SIMPLE_SYSTEM_DEPENDENCIES
feature will be removed in a future package release, as it no longer provides significant benefit for expected DOTS workloads. - The
EntityQueryCaptureMode.AtRecord
enum value inEntityCommandBuffer
is now deprecated. All users should migrate toEntityQueryCaptureMode.AtPlayback
. Capture-at-record mode can be several hundred times slower than capture-at-playback. If capture-at-record semantics are required and performance isn't a concern, the array of entities matching the query can be captured manually and passed to the correspondingEntityCommandBuffer
command.
Fixed
- Usage of SystemAPI.GetComponentRW and SystemAPI.GetComponentRO in Entities.ForEach.
- Regression in compilation time with assemblies with lots of system methods.
- EntityComponentStore leaked memory during domain reload.
1.3.0-exp.1
[1.3.0-exp.1] - 2024-06-11
Added
ArchetypeChunk.GetEnabledMask()
now allows creating masks fromBufferTypeHandle
andDynamicComponentTypeHandle
, in addition toComponentTypeHandle
.EnabledRefRW<T>
and EnabledRefROcan now be created from
IBufferElementData, either from an
EnabledMaskor a
BufferLookup`.- Added a new variant of
EntityManager.GetComponentOrderVersion()
that targets a runtimeComponentType
value, instead of a compile-time type parameter. EntityQuery.GetEntityQueryDescs()
returns the target query's full list of query descriptions.- Added new
EntityManager.SetSharedComponent<T>(ArchetypeChunk, T)
andEntityManager.SetSharedComponentManaged<T>(ArchetypeChunk, T)
methods to efficiently set shared component values for all entities in a chunk. This is generally more efficient that setting the value on each individual entity.
Changed
- The internal capacity of
Child
buffer components is reduced from 8 to 0, improving the chunk utilization of parent entities. - The internal capacity of
LinkedEntityGroup
buffer components is reduced from 1 to 0, improving the chunk utilization of prefabs and prefab instances. EnabledMask.GetOptionalEnabledRef*()
were renamed toEnabledMask.GetEnabledRef*Optional()
for consistency.EntityQuery.GetCombinedComponentOrderVersion()
now takes abool
parameter to indicate whether theEntity
component type should be included. The existing variant of this method is now marked as deprecated.- Improved performance of the
LocalToWorldSystem
when processing entity transform hierarchies, by distributing work more evenly across worker threads.
Deprecated
EntityQuery.GetEntityQueryDesc()
should no longer be used; it only returns the target query's first query description element. Use the new.GetEntityQueryDescs()
method instead to retrieve the full list. If only the first element is needed, usequery.GetEntityQueryDescs()[0]
.
Removed
- The
EnabledMask
constructor was removed from the public API. Its inclusion was an error, and it is impossible to call safely from user code. The correct way to create these objects is throughArchetypeChunk.GetEnabledMask()
.
Fixed
EnabledRefRW<T>
now throws when attempting to write through an invalid or uninitialized instance.- Creating an
EntityQuery
with multipleEntityQueryDesc
(or by usingEntityQueryBuilder.AddAdditionalQuery()
) now correctly matches archetypes that match one of the query's descriptions other than the first. - Entities windows do not throw exceptions anymore when installing or removing packages from package manager.
- Debug proxies (used by external debuggers) were sometimes using invalid field offsets when inspecting structs in blob assets. This led to incorrect values being reported in debugger watch windows. In particular, this would be triggered by the use of bool fields in blob asset structs.
- Entity version numbers could go back to 1 after reallocation in some edge cases.
- When building a content update, a temporary path was getting created in the drive root instead of the Library folder. This would also cause content update builds to grow in size every time they were built. The folder is now created in the Library correctly.
- IL2CPP compilation errors in patched methods (using codegen features) that also contain local functions.
- Removed a potential source of non-determinism in the chunk header when serializing entities scenes.
- the content of the archive_dependencies.bin and archive_dependencies.txt files in builds is now deterministic.
- SystemAPI.GetSingletonBuffer(readOnly: ...) now correctly passes the argument (aka, you can now correctly get a readonly DynamicBuffer)
- Error in build when sprites are contained in subscenes has been removed.
Security
Known Issues
1.2.3
[1.2.3] - 2024-05-30
Fixed
- Queries are now correctly constructed using
EntityQueryBuilder
when using[WithDisabled(T)]
onIJobEntity
withEnabledRefRW<T>
and/orRefRW<T>
. - Cross-world selection in Entities Hierarchy
- Entities windows do not throw exceptions anymore when installing or removing packages from package manager.
- Fixed crash on quit in players due to incorrect RuntimeContentManager cleanup timing.
- respond to much docs feedback
- Fixed a regression which caused subscene section bounding volumes to be computed incorrectly.
EntityCommandBuffer.AddComponentForLinkedEntityGroup()
andEntityCommandBuffer.SetComponentForLinkedEntityGroup()
now correctly process all entities that match the providedEntityQueryMask
, even if new archetypes matching the query were added earlier during command buffer playback.- Creating a cycle with
[UpdateInGroup]
attributes now throws an exception instead of crashing the Editor.
1.2.1
[1.2.1] - 2024-04-26
Changed
- Updated Burst dependency to version 1.8.13
- Updated entities packages dependencies
Fixed
- The entities hierarchy view would sometimes throw exceptions when entities were destroyed.
- remove use of UNITY_64 define, as is can not be reliably used to determine 64 bit nature of platforms. Fixes crashes related to pointer truncation.
- The inspector no longer shows stale content when exiting play mode while locked in Authoring mode on a GameObject outside of a subscene.
- Systems now correctly track the implicit read dependency on enableable components in their queries'
Any
lists. These components are optional, but evaluating a query with optional enableable components requires reading these components' enabled state, which requires a read dependency even if nothing else in the system directly manipulates these types. EntityManager.SetComponentEnabled<T>(EntityQuery,bool)
now sets the change version for the target typeT
on all affected chunks.CompanionGameObjectUpdateTransformSystem
expected entities to have theLocalToWorld
andCompanionLinkTransform
components, but did not explicitly require them in its query.
Security
Known Issues
1.2.0
[1.2.0] - 2024-03-22
Added
- Document counterintuitive behavior when an
EntityQueryMask
is created from anEntityQuery
that includes aWithNone<T>()
constraint, whereT
is anIEnableableComponent
.
Changed
- Performance improvements in
LocalToWorldSystem
when processing entities with non-dirty hierarchies and no children.
Deprecated
EntityManager.CopyEntities()
is now deprecated, and will be removed from the public API in a future package release. We're not aware of any use cases for this function outside of the Entities package itself;EntityManager.Instantiate()
is the correct way for higher-level code to instantiate copies of existing entities.
Fixed
- BakingAnalytics no longer initializes TypeManager [InitializeOnLoad]
- Fixed issue where breakpoints in jobs defined after systems with SystemAPI usage are not hit.
- Fixed an error where the Entities Hierarchy window was accessing a destroyed world during UI bindings.
- Using SystemAPI.GetComponentRO/RW with "using static SystemAPI" within an Entities.ForEach used to confuse the code generator and failed to compile.
- Replace
HierarchyNodeMap
's indexer setter with explicit add/update logic. - an issue with hybrid entity baking regarding scales with different signs
- Entities Hierarchy now removes all nodes of a scene and subscenes when the scene is unloaded.
- Exception thrown when entering a prefab from the Entities Hierarchy
- Fixed: Memory leak in certain circumstances in Entity Scene Streaming
- Improved error message for when
SystemAPI.QueryBuilder
users forget to call.Build()
. - An assert when using AddMultipleComponentsDuringStructuralChange with more than 10 entities in some cases
- Add filter button was not showing filters in Archetypes and Journaling windows.
- An invalid range check caused the removal of entities from the hierarchy view to sometimes fail in perfectly valid cases.
1.2.0-pre.12
[1.2.0-pre.12] - 2024-02-13
Added
- A file with the code for both snippets in the custom transforms documentation was added to the "DocCodeSamples.Tests" folder.
- The Create Menu now offers ScriptTemplates for the IComponentData, ISystem, IJobEntity and Baker types under Assets/Create/Entities
Changed
- Fixed infinite loop that could occur due to concurrent use of non-concurrent Dictionary in Aspect Generator.
- Reduce the set/restore frequency of the fixed rate system group allocator.
- Various performance improvements in baking. Baking mesh-heavy scenes now takes 70% of what it did before.
- Significant performance improvements when creating archetypes and entity queries in Worlds with a large number of existing archetypes/queries.
- Updated Burst dependency to version 1.8.12
Fixed
- EntityQuery singleton methods now correctly handle cases where the query contains enableable components. Note that
GetSingletonEntity()
andTryGetSingletonEntity()
still can not be used on queries with enableable components, and that the singleton component itself can not be enableable. Both constraints may be lifted in a future release. - A broken link to a code snippet in the documentation for custom transforms was fixed.
- Archetype window and Entity Memory Profiler module UI initialization.
- Making a player build with define
UNITY_DOTS_DEBUG
, while using an IJobEntity using RefRO/RefRW no longer compile errors! - Clarified documentation for cleanup components
- Fixed minor memory leak in content delivery system.
- AABB.Contains.
- The entities hierarchy view would sometimes throw exceptions when entities were destroyed.
- remove use of UNITY_64 define, as is can not be reliably used to determine 64 bit nature of platforms. Fixes crashes related to pointer truncation.