예제 #1
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            ArchetypeChunkSharedComponentType <SpriteAsset> assetType      = GetArchetypeChunkSharedComponentType <SpriteAsset>();
            ArchetypeChunkComponentType <SpriteVertexData>  spriteDataType = GetArchetypeChunkComponentType <SpriteVertexData>();

            using (var chunkArray = m_SpriteAssetGroup.CreateArchetypeChunkArray(Unity.Collections.Allocator.TempJob))
            {
                foreach (var chunk in chunkArray)
                {
                    var spriteDataArray = chunk.GetNativeArray(spriteDataType);
                    var asset           = chunk.GetSharedComponentData(assetType, EntityManager);
                    var spriteData      = SpriteUtility.GetSpriteVertexData(asset.Value);
                    spriteData.NativeMaterialId = chunk.GetSharedComponentIndex(assetType);
                    for (int i = 0; i < chunk.Count; i++)
                    {
                        spriteDataArray[i] = spriteData;
                    }
                    //chunk.SetChunkComponentData(spriteDataType, spriteData);
                }
            }
            EntityManager.AddComponent(m_SpriteAssetGroup, typeof(SpriteAssetInitialized));
            return(inputDeps);
        }