示例#1
0
 public bool SpawnEntityComponent(out List <EntityComponent> entityComponents, IEntityComponentSpawner spawner, Entity recipient = null)
 {
     entityComponents = new List <EntityComponent>();
     if (!CanHaveMoreOffspring(spawner))
     {
         return(false);
     }
     if (recipient == null)
     {
         //CREATE PICKUP
         return(true);
     }
     foreach (EntityComponent component in spawner.GetEntityComponents())
     {
         EntityComponent newEntityComponent = recipient.GetGameObject().AddComponent(component.GetType()) as EntityComponent;
         ReflectionUtil.CopyObjectValues(component, newEntityComponent);
         spawner.onSpawn.Invoke(spawner, newEntityComponent);
         entityComponents.Add(newEntityComponent);
     }
     return(entityComponents.Count > 0);
 }
示例#2
0
 public void InitEntityComponentSpawner(IEntityComponentSpawner entityComponentSpawner)
 {
     entityComponentSpawner.onSpawn   = new EntityComponentSpawnEvent();
     entityComponentSpawner.offspring = new List <GameObject>();
 }