示例#1
0
        public unsafe void UpdateInjection(byte *pinnedSystemPtr, EntityManager entityManager)
        {
            for (var i = 0; i != m_InjectComponentDataFromEntity.Length; i++)
            {
                var array = entityManager.GetComponentDataFromEntity <ProxyComponentData>(
                    m_InjectComponentDataFromEntity[i].ComponentType.TypeIndex,
                    m_InjectComponentDataFromEntity[i].IsReadOnly);
                UnsafeUtility.CopyStructureToPtr(ref array,
                                                 pinnedSystemPtr + m_InjectComponentDataFromEntity[i].FieldOffset);
            }

            for (var i = 0; i != m_InjectBufferDataFromEntity.Length; i++)
            {
                var array = entityManager.GetBufferDataFromEntity <ProxyBufferElementData>(
                    m_InjectBufferDataFromEntity[i].ComponentType.TypeIndex,
                    m_InjectBufferDataFromEntity[i].IsReadOnly);
                UnsafeUtility.CopyStructureToPtr(ref array,
                                                 pinnedSystemPtr + m_InjectBufferDataFromEntity[i].FieldOffset);
            }
        }
示例#2
0
 public BufferDataFromEntity <T> GetBufferArrayFromEntity <T>(bool isReadOnly = false) where T : struct, IBufferElementData
 {
     AddReaderWriter(isReadOnly ? ComponentType.ReadOnly <T>() : ComponentType.Create <T>());
     return(EntityManager.GetBufferDataFromEntity <T>(isReadOnly));
 }