Ejemplo n.º 1
0
        // Update is called once per frame
        void Update()
        {
            Vector3 direction = target.position - this.transform.position;

            state = character.State;
            state.Run();
            direction.y = 0;
            if (Vector3.Distance(target.position, this.transform.position) > 10)
            {
                this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f);
                state = character.State;
                state.Walk();
            }
            else
            {
                if (direction.magnitude > 1)
                {
                    state = character.State;
                    state.Run();
                }
                else
                {
                    state = character.State;
                    state.Attack();
                }
            }
            this.transform.Translate(0, 0, character.Speed);
        }
Ejemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        int x = 0;
        int z = 0;

        if (Input.GetButton("Horizontal"))
        {
            x = Mathf.RoundToInt(Input.GetAxisRaw("Horizontal"));
        }
        if (Input.GetButton("Vertical"))
        {
            z = Mathf.RoundToInt(Input.GetAxisRaw("Vertical"));
        }
        currentState.Move(x, z);
        if (!GameManager.isAI)
        {
            if (character.sprite == ai)
            {
                character.sprite = human;
            }
            if (Input.GetButton("Roll"))
            {
                currentState.Roll(x, z);
            }
            if (Input.GetButton("Fire1"))
            {
                currentState.Attack();
            }

            if (GameManager.hasPhone)
            {
                if (Input.GetButtonDown("Fire2"))
                {
                    currentState.Shoot();
                }
                if (Input.GetButtonDown("Fire3"))
                {
                    currentState.Stungun();
                }
                if (Input.GetButtonDown("Heal"))
                {
                    currentState.Heal();
                }
                if (atPuzzleTerminal && Input.GetButtonDown("Interact"))
                {
                    atPuzzleTerminal = false;
                    currentState.Puzzle(currentFirewall);
                }
            }
        }
        else if (GameManager.isAI)
        {
            if (character.sprite == human)
            {
                character.sprite = ai;
            }
            Debug.Log("am AI");
            if (Input.GetButtonDown("SpawnCube"))
            {
                currentState.SpawnCube();
            }
            if (Input.GetButtonDown("DespawnCube"))
            {
                currentState.DespawnCube();
            }
        }
        if (!GameManager.isAI)
        {
            currentState = currentState.CheckAlive();
        }
        currentState = currentState.UpdateState();
        if (!GameManager.isAI)
        {
            playerDetails.UpdateDetails();
        }
        else
        {
            aiDetails.UpdateDetails();
        }
    }