com.unity.entities 1.0.11
Source docsNotes: processedReleased June 21, 2023
Unity Compatibility
Minimum Unity: 2022.2 (15f1)
Package Dependencies
- com.unity.burst (1.8.4)
- com.unity.collections (2.1.4)
- com.unity.mathematics (1.2.6)
- com.unity.modules.assetbundle (1.0.0)
- com.unity.modules.audio (1.0.0)
- com.unity.modules.unitywebrequest (1.0.0)
- com.unity.nuget.mono-cecil (1.11.4)
- com.unity.profiling.core (1.0.2)
- com.unity.scriptablebuildpipeline (1.20.2)
- com.unity.serialization (3.1.1)
✨ Features
- The new `EntityQueryOptions.IncludeMetaChunks` flag allows queries to match archetypes with the `ChunkHeader` component (which is excluded from queries by default).
📈 Improvements
- Idiomatic `foreach` and `Entities.ForEach` will now only sync jobs read/writing to component data the foreach will iterate over when the underlying EntityQuery used by the foreach indeed has entities to iterate over. Previously jobs would be unilaterally sync'd when using these constructs which could create stalls on the main thread on jobs that did not need to occur.
- Significantly improved the performance of `EntityCommandBuffer.AsParallelWriter()` and `EntityCommandBuffer.Dispose()`.
- Change component attribute name from `Alignment in Chunk` to `Component Type Alignment in Chunk` when displaying component attributes in Inspector window.
- LinkedEntityGroup internal buffer capacity set to 1.
- ### Deprecated
- `EntityCommandBuffer` methods which target an `EntityQuery` now take a new `EntityQueryCaptureMode` parameter, used to specify whether the provided query should be evaluated at record time (immediately) or at playback time (deferred). `.AtRecord` matches the existing behavior for compatibility, but `.AtPlayback` is up to 200x faster for some commands. The variants which do not include this extra parameter have been deprecated, but their existing behavior and semantics are preserved. The safe and easy fix is to add `EntityQueryCaptureMode.AtRecord` to all call sites; however, users are encouraged to review all call sites to see if the faster `.AtPlayback` mode would be appropriate.
⚡ API Changes
- Alignment attribute is removed when displaying component attributes in Inspector window.
🔧 Bug Fixes
- Updated code samples in documentation for building content archives and content delivery.
- Systems window's tree view indents are now enforced to the proper width.
- Systems window's world and namespace columns are now left aligned.
- You now can register generic ISystems so that they can be discovered and created automatically with world creation, or created manually via CreateSystem. Register each generic instance of them with `[assembly: RegisterGenericSystemType(typeof(YourGenericSystem))]` to allow such usage.
- Entities Hierarchy: Fix an exception happening when dragging a gameobject over a subscene node.
- Entities Hierarchy: Disable Empty Scene menu item when creating new subscenes where the main scene is not saved.
- Entities Hierarchy: fix a missing dispose in change collectors.
- Current selection is cleared if an object is selected outside Systems window.
- Current selection is cleared if an object is selected outside Components window.
- Current selection is cleared from Components window when entering/exiting play mode.
- Native memory leak when creating EntityQuery with EntityManager.CreateEntityQuery
- Ensures both readers and writer dependencies are completed when accessing read/write components in certain code paths
- Fixed a crash happening in `EntityCommandBuffer.Dispose` due to a use-after-free bug
- `TypeManager` methods such as `GetSystemName` previously could crash after adding new system type information at runtime due to the `TypeManager` referring to invalid memory.
- Bursted generic ISystems defined in one assembly and registered in another no longer break compilation.
