public static unsafe TransformAccessArray GetTransformAccessArray(this ComponentGroup group) { var state = (TransformAccessArrayState?)group.m_CachedState ?? new TransformAccessArrayState(); var orderVersion = group.EntityDataManager->GetComponentTypeOrderVersion(TypeManager.GetTypeIndex <Transform>()); if (state.Data.IsCreated && orderVersion == state.OrderVersion) { return(state.Data); } state.OrderVersion = orderVersion; UnityEngine.Profiling.Profiler.BeginSample("DirtyTransformAccessArrayUpdate"); var trans = group.GetComponentArray <Transform>(); if (!state.Data.IsCreated) { state.Data = new TransformAccessArray(trans.ToArray()); } else { state.Data.SetTransforms(trans.ToArray()); } UnityEngine.Profiling.Profiler.EndSample(); group.m_CachedState = state; return(state.Data); }