Пример #1
0
 static TypeManager.EntityOffsetInfo[] GetEntityOffsets(System.Type type)
 {
     unsafe
     {
         var info = TypeManager.GetTypeInfo(TypeManager.GetTypeIndex(type));
         if (info.EntityOffsetCount > 0)
         {
             TypeManager.EntityOffsetInfo[] ei = new TypeManager.EntityOffsetInfo[info.EntityOffsetCount];
             for (var i = 0; i < info.EntityOffsetCount; ++i)
             {
                 ei[i] = TypeManager.GetEntityOffsets(info)[i];
             }
             return(ei);
         }
         return(null);
     }
 }
        static TypeManager.EntityOffsetInfo[] GetEntityOffsets(System.Type type)
        {
#if !UNITY_DOTSPLAYER
            return(EntityRemapUtility.CalculateEntityOffsets(type));
#else
            unsafe {
                var info = TypeManager.GetTypeInfo(TypeManager.GetTypeIndex(type));
                if (info.EntityOffsetCount > 0)
                {
                    TypeManager.EntityOffsetInfo[] ei = new TypeManager.EntityOffsetInfo[info.EntityOffsetCount];
                    for (var i = 0; i < info.EntityOffsetCount; ++i)
                    {
                        ei[i] = TypeManager.GetEntityOffsets(info)[i];
                    }
                    return(ei);
                }
                return(null);
            }
#endif
        }
        static TypeManager.EntityOffsetInfo[] GetEntityOffsets(System.Type type)
        {
#if !UNITY_DOTSRUNTIME // Work needed to make CalculateEntityOffsets compatible with DOTS Runtime (comment with explanation at that code)
            return(EntityRemapUtility.CalculateEntityOffsets(type));
#else
            unsafe {
                var info = TypeManager.GetTypeInfo(TypeManager.GetTypeIndex(type));
                if (info.EntityOffsetCount > 0)
                {
                    TypeManager.EntityOffsetInfo[] ei = new TypeManager.EntityOffsetInfo[info.EntityOffsetCount];
                    for (var i = 0; i < info.EntityOffsetCount; ++i)
                    {
                        ei[i] = TypeManager.GetEntityOffsets(info)[i];
                    }
                    return(ei);
                }
                return(null);
            }
#endif
        }