public virtual UnitBaseState ProcessState(UnitBaseState state)
    {
        var result = ScriptableObject.Instantiate(state);

        result.Health *= HealthMul;
        result.Speed  *= SpeedMul;

        return(result);
    }
예제 #2
0
    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();
        }
    }