public static Entity GenerateEntity(EntityManager entityManager, ProceduralGenerationSpawnData spawnData) { Entity entity = entityManager.CreateEntity(); // ecb.addComponent(entity,new ProceduralGenerationElement(ecb, proceduralAreaEntity, spawnData.EntityPrefab)); return(entity); }
/// <summary> /// Generates Entities and returns them after creation using the given arguments /// </summary> /// <param name="entityManager"></param> /// <param name="proceduralAreaEntity">the entity that will house all the new;y created entities</param> /// <param name="spawnData"></param> /// <param name="entityPrefab"></param> /// <returns></returns> public static NativeArray <Entity> GenerateSpawnEntities(EntityManager entityManager, Entity proceduralAreaEntity, ref ProceduralGenerationSpawnData spawnData, GameObject entityPrefab, Allocator allocator) { NativeArray <Entity> entities = new NativeArray <Entity>(spawnData.Amount, allocator); entityManager.Instantiate(entityPrefab, entities); // since we used a gameobect we have to set the entity prefab spawnData.EntityPrefab = new EntityPrefab(entityManager, entityManager.Instantiate(entities[0]), new FixedString64(entityPrefab.name)); foreach (Entity entity in entities) { entityManager.AddComponentData <ProceduralGenerationElement>(entity, new ProceduralGenerationElement(entityManager, proceduralAreaEntity, spawnData.EntityPrefab.Entity)); } return(entities); }
public static NativeArray <Entity> GenerateEntities(EntityCommandBuffer.ParallelWriter ecb, int jobIndex, Entity proceduralAreaEntity, ProceduralGenerationSpawnData spawnData, Allocator allocator) { NativeArray <Entity> entities = new NativeArray <Entity>(spawnData.Amount, allocator); foreach (Entity entity in entities) { ecb.AddComponent(jobIndex, entity, new ProceduralGenerationElement(ecb, jobIndex, proceduralAreaEntity, spawnData.EntityPrefab.Entity)); } return(entities); }
public static Entity GenerateEntity(EntityCommandBuffer.ParallelWriter ecb, int jobIndex, ProceduralGenerationSpawnData spawnData) { Entity entity = ecb.CreateEntity(jobIndex); // ecb.addComponent(entity,new ProceduralGenerationElement(ecb, proceduralAreaEntity, spawnData.EntityPrefab)); return(entity); }
// Spawn Data Generation public static NativeArray <Entity> GenerateEntities(EntityManager entityManager, Entity proceduralAreaEntity, ProceduralGenerationSpawnData spawnData, Allocator allocator) { NativeArray <Entity> entities = entityManager.Instantiate(spawnData.EntityPrefab.Entity, spawnData.Amount, allocator); foreach (Entity entity in entities) { entityManager.AddComponentData <ProceduralGenerationElement>(entity, new ProceduralGenerationElement(entityManager, proceduralAreaEntity, spawnData.EntityPrefab.Entity)); } return(entities); }