using UnityEngine; namespace ET { public static class UnitFactory { public static Unit Create(Entity domain, UnitInfo unitInfo) { UnitComponent unitComponent = domain.GetComponent(); Unit unit = unitComponent.AddChildWithId(unitInfo.UnitId, unitInfo.ConfigId); unitComponent.Add(unit); 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(); Game.EventSystem.Publish(new EventType.AfterUnitCreate() {Unit = unit}).Coroutine(); return unit; } } }