Method GetAllUniqueSharedComponentsManaged
GetAllUniqueSharedComponentsManaged<T>(List<T>)
Gets a list of all the unique instances of a shared component type.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void GetAllUniqueSharedComponentsManaged<T>(List<T> sharedComponentValues)
where T : struct, ISharedComponentData
Parameters
Type | Name | Description |
---|---|---|
List<T> | sharedComponentValues | A List<T> object to receive the unique instances of the shared component of type T. |
Type Parameters
Name | Description |
---|---|
T | The type of shared component. |
Remarks
All entities with the same archetype and the same values for a shared component are stored in the same set
of chunks. This function finds the unique shared components existing across chunks and archetype and
fills a list with copies of those components.
Note that the first element of the output list will always be the default value for T
,
even if no entities or chunks currently use that value.
GetAllUniqueSharedComponentsManaged<T>(List<T>, List<Int32>)
Gets a list of all unique shared components of the same type and a corresponding list of indices into the internal shared component list.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void GetAllUniqueSharedComponentsManaged<T>(List<T> sharedComponentValues, List<int> sharedComponentIndices)
where T : struct, ISharedComponentData
Parameters
Type | Name | Description |
---|---|---|
List<T> | sharedComponentValues | A List<T> object to receive the unique instances of the shared component of type T. |
List<Int32> | sharedComponentIndices | A List<int> object to receive the unique instances of the shared components' indices. |
Type Parameters
Name | Description |
---|---|
T | The type of shared component. |
Remarks
All entities with the same archetype and the same values for a shared component are stored in the same set of chunks. This function finds the unique shared components existing across chunks and archetype and fills a list with copies of those components and fills in a separate list with the indices of those components in the internal shared component list. You can use the indices to ask the same shared components directly by calling GetSharedComponentManaged<T>(Int32), passing in the index. An index remains valid until the shared component order version changes. Check this version using GetSharedComponentOrderVersion<T>(T).
GetAllUniqueSharedComponentsManaged<T>(List<T>, List<Int32>, List<Int32>)
Gets a list of all unique shared components of the same type and a corresponding list of indices into the internal shared component list and their internal versions.
Declaration
[ExcludeFromBurstCompatTesting("Accesses managed component store")]
public void GetAllUniqueSharedComponentsManaged<T>(List<T> sharedComponentValues, List<int> sharedComponentIndices, List<int> sharedComponentVersions)
where T : struct, ISharedComponentData
Parameters
Type | Name | Description |
---|---|---|
List<T> | sharedComponentValues | A List<T> object to receive the unique instances of the shared component of type T. |
List<Int32> | sharedComponentIndices | A List<int> object to receive the unique instances of the shared components' indices. |
List<Int32> | sharedComponentVersions | A List<int> object to receive the unique instances of the shared components' versions. |
Type Parameters
Name | Description |
---|---|
T | The type of shared component. |
Remarks
All entities with the same archetype and the same values for a shared component are stored in the same set of chunks. This function finds the unique shared components existing across chunks and archetype and fills a list with copies of those components and fills in two separated lists: One with the indices of those components in the internal shared component list and one with their internal versions to detect free list reuse. You can use the indices to ask the same shared components directly by calling GetSharedComponentManaged<T>(Int32), passing in the index. An index remains valid until the shared component order version changes. Check this version using GetSharedComponentOrderVersion<T>(T).