Beispiel #1
0
    void Update()
    {
        float hor_inp = Input.GetAxis("Horizontal");
        float ver_inp = Input.GetAxis("Vertical");

        if (hor_inp != 0.0f || ver_inp != 0.0f)
        {
            CharacterRef.Move(hor_inp, ver_inp);
        }

        RotateTowards(Input.mousePosition);

        if (Input.GetButton("Fire1"))
        {
            CharacterRef.Fire();
        }
    }
Beispiel #2
0
    protected override void UpdateState()
    {
        float distance = Vector2.Distance(Player.transform.position, transform.position);

        if (distance < FireRange)
        {
            State = AIState.FIRING;
        }
        else if (distance < ViewRange)
        {
            State = AIState.WALKING;
        }
        else
        {
            State = AIState.WAITING;
        }

        switch (State)
        {
        case AIState.WAITING:



            break;

        case AIState.WALKING:

            RotateTowards(Player.transform.position);

            Vector2 dir = (Player.transform.position - transform.position).normalized;

            HumanRef.Move(dir.x, dir.y);

            break;

        case AIState.FIRING:

            RotateTowards(Player.transform.position);

            HumanRef.Fire();

            break;
        }
    }