public virtual UnitBaseState ProcessState(UnitBaseState state) { var result = ScriptableObject.Instantiate(state); result.Health *= HealthMul; result.Speed *= SpeedMul; return(result); }
protected override void Awake() { base.Awake(); unit = this; mover = GetComponent <Mover> (); builder = GetComponent <Builder> (); worldObject.OnWorldObjectDeathDelegate += LetStageManagerKnowOfUnitDeath; navAgent = GetComponent <NavMeshAgent>(); attacker = GetComponent <Attacker>(); reviver = GetComponent <Reviver>(); spawner = GetComponent <Spawner>(); hatcheryInteracter = GetComponent <HatcheryInteracter>(); unitState = new IdleState(unit, false); if (enemyManager && navAgent) { RandomizeNavAgentPriority(); } }