Version: Unity 7.0 Alpha (7000.0)
LanguageEnglish
  • C#

EntityManager.SwapComponents

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public void SwapComponents(ArchetypeChunk leftChunk, int leftIndex, ArchetypeChunk rightChunk, int rightIndex);

Parameters

Parameter Description
leftChunk A chunk containing one of the entities to swap.
leftIndex The index within the leftChunk of the entity and components to swap. Must be in the range [0,leftChunk.Count).
rightChunk The chunk containing the other entity to swap. This chunk can be the same as the leftChunk. It also does not need to be in the same World as leftChunk.
rightIndex The index within the rightChunk of the entity and components to swap. Must be in the range [0,rightChunk.Count).

Description

Swaps the components of two entities.

The entities must have the same components. However, this function can swap the components of entities in different worlds, so they do not need to have identical archetype instances.

Important: This method creates a sync point, which means that the EntityManager waits for all currently running jobs to complete before swapping the component. No additional jobs can start before the method is finished. A sync point can cause a drop in performance because the ECS framework might not be able to use the processing power of all available cores.