using UnityEngine; namespace ET { public static class UnitFactory { public static Unit Create(Entity domain, UnitInfo unitInfo) { Unit unit = EntityFactory.CreateWithId(domain, unitInfo.UnitId, unitInfo.ConfigId); unit.Position = new Vector3(unitInfo.X, unitInfo.Y, unitInfo.Z); unit.AddComponent(); NumericComponent numericComponent = unit.AddComponent(); for (int i = 0; i < unitInfo.Ks.Count; ++i) { numericComponent.Set((NumericType)unitInfo.Ks[i], unitInfo.Vs[i]); } unit.AddComponent(); unit.AddComponent(); UnitComponent unitComponent = domain.GetComponent(); unitComponent.Add(unit); Game.EventSystem.Publish(new EventType.AfterUnitCreate() {Unit = unit}); return unit; } } }