UnitFactory.cs 978 B

123456789101112131415161718192021222324252627282930
  1. using UnityEngine;
  2. namespace ET
  3. {
  4. public static class UnitFactory
  5. {
  6. public static Unit Create(Entity domain, UnitInfo unitInfo)
  7. {
  8. Unit unit = EntityFactory.CreateWithId<Unit, int>(domain, unitInfo.UnitId, unitInfo.ConfigId);
  9. unit.Position = new Vector3(unitInfo.X, unitInfo.Y, unitInfo.Z);
  10. unit.AddComponent<MoveComponent>();
  11. NumericComponent numericComponent = unit.AddComponent<NumericComponent>();
  12. for (int i = 0; i < unitInfo.Ks.Count; ++i)
  13. {
  14. numericComponent.Set((NumericType)unitInfo.Ks[i], unitInfo.Vs[i]);
  15. }
  16. unit.AddComponent<ObjectWait>();
  17. unit.AddComponent<XunLuoPathComponent>();
  18. UnitComponent unitComponent = domain.GetComponent<UnitComponent>();
  19. unitComponent.Add(unit);
  20. Game.EventSystem.Publish(new EventType.AfterUnitCreate() {Unit = unit});
  21. return unit;
  22. }
  23. }
  24. }