Пример #1
0
    public override void Update()
    {
        if (State == GunnerState.Run)
        {
            base.Update();
        }
        else
        {
            Fire();
        }

        if (stateChangeTime < Time.time)
        {
            stateChangeTime = Time.time + StateChangePerSec;
            float rand = Random.Range(0.0f, 1.0f);
            if (rand < 0.4f)
            {
                State = GunnerState.Fire;
            }
            else
            {
                State = GunnerState.Run;
            }
        }
        Vector3 playerToEnemy = Player.transform.position - transform.position;

        transform.up = -playerToEnemy.normalized;
    }
Пример #2
0
    public override void Start()
    {
        base.Start();

        State = GunnerState.Run;

        int    x = Random.Range(1, 3);
        string a = x.ToString();

        Player = GameObject.Find("Player" + a).transform;

        fireTime        = 0;
        stateChangeTime = 0;
    }
Пример #3
0
    //Used to switch from the last state to the new state, updates the game object to show the current state
    public void SetState(GunnerState state)
    {
        if (currentState != null)
        {
            currentState.OnStateExit();
        }

        currentState    = state;
        gameObject.name = "AI gunner in state " + state.GetType().Name;

        if (currentState != null)
        {
            currentState.OnStateEnter();
        }
    }