private void Restart()
        {
            IUnit unit = GetComponent <IUnit>();

            unit.OnDispose += OnDeadTarget;

            foreach (var iter in Properties)
            {
                unit.AddProperty(iter.Instantiate <IProperty>());
            }
            foreach (var iter in Skills)
            {
                unit.AddSkill(iter.Instantiate <ISkill>());
            }

            unit.Init();

            unit.GameObject.SetActive(true);
        }
Example #2
0
        public IUnit Spawn(GameObject parent)
        {
            IUnit unit = m_Unit.Value.Instantiate <IUnit>();

            unit.GameObject.transform.parent = parent.transform;
            unit.GameObject.SetActive(false);

            foreach (var iter in Properties)
            {
                unit.AddProperty(iter.Instantiate <IProperty>());
            }

            foreach (var iter in Skills)
            {
                unit.AddSkill(iter.Instantiate <ISkill>());
            }

            return(unit);
        }