namespace Unity.Entities { public sealed unsafe partial class EntityManager { // ---------------------------------------------------------------------------------------------------------- // PUBLIC // ---------------------------------------------------------------------------------------------------------- /// /// Begins an exclusive entity transaction, which allows you to make structural changes inside a Job. /// /// /// allows you to create & destroy entities from a job. The purpose is /// to enable procedural generation scenarios where instantiation on big scale must happen on jobs. As the /// name implies it is exclusive to any other access to the EntityManager. /// /// An exclusive entity transaction should be used on a manually created that acts as a /// staging area to construct and setup entities. /// /// After the job has completed you can end the transaction and use /// to move the entities to an active . /// /// A transaction object that provides an functions for making structural changes. public ExclusiveEntityTransaction BeginExclusiveEntityTransaction() { ComponentJobSafetyManager->BeginExclusiveTransaction(); #if ENABLE_UNITY_COLLECTIONS_CHECKS m_ExclusiveEntityTransaction.SetAtomicSafetyHandle(ComponentJobSafetyManager->ExclusiveTransactionSafety); #endif return m_ExclusiveEntityTransaction; } /// /// Ends an exclusive entity transaction. /// /// /// public void EndExclusiveEntityTransaction() { ComponentJobSafetyManager->EndExclusiveTransaction(); } // ---------------------------------------------------------------------------------------------------------- // INTERNAL // ---------------------------------------------------------------------------------------------------------- } }