Esempio n. 1
0
        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);
        }