Esempio n. 1
0
    void FixedUpdate()
    {
        if (foundPlayer && !zombieHealthScript.isStunned && !zombieHealthScript.isDead)
        {
            //player = GameObject.Find("Player").transform;
            //Vector3 distance = player.position - transform.position;
            //transform.Find("ZombieSprite").LookAt(player); // enemy looks to you
            //transform.Translate(Vector3.forward * moveSpeed); // enemy walks to you



            Vector3 newPos = transform.position;

            //player = GameObject.Find("Player").transform;

            Vector3 move = new Vector3(0, 0, 0);

            Vector3 direction = player.transform.position - transform.position;
            direction    = direction.normalized;
            curDirection = findFacingDir(direction);

            Vector3 distance = transform.position - player.transform.position;
            if (distance.x > moveSpeed)
            {
                //newPos.x -= moveSpeed;
                move.x = -1 * moveSpeed;
            }

            else if (distance.x < -moveSpeed)
            {
                //newPos.x += moveSpeed;

                move.x = 1 * moveSpeed;
            }
            if (distance.y > moveSpeed)
            {
                //newPos.y -= moveSpeed;
                move.y = -1 * moveSpeed;
            }
            else if (distance.y < -moveSpeed)
            {
                //newPos.y += moveSpeed;
                move.y = 1 * moveSpeed;
            }


            //transform.position = newPos;
            transform.parent.GetComponent <CharacterController>().Move(move);
            // GetComponent<CharacterController>().Move(move);
        }
    }
    private void calculateFacingDirection(Vector2 movementDirection)
    {
        //Player.FacingDirection direction = Player.FacingDirection.Up;
        Player.FacingDirection direction = info.facingDirection;
        float xAmount = Mathf.Abs(movementDirection.x);
        float yAmount = Mathf.Abs(movementDirection.y);

        if (xAmount > yAmount)
        {
            //Greater x influence
            direction = getHorizontalFacingDirection(movementDirection);
        }
        else if (xAmount < yAmount)
        {
            direction = getVerticalFacingDirection(movementDirection);
        }

        info.facingDirection = direction;
    }
    void FixedUpdate()
    {
        if(foundPlayer && !zombieHealthScript.isStunned && !zombieHealthScript.isDead){

            //player = GameObject.Find("Player").transform;
            //Vector3 distance = player.position - transform.position;
            //transform.Find("ZombieSprite").LookAt(player); // enemy looks to you
            //transform.Translate(Vector3.forward * moveSpeed); // enemy walks to you

            Vector3 newPos = transform.position;

            //player = GameObject.Find("Player").transform;

            Vector3 move = new Vector3(0,0,0);

            Vector3 direction = player.transform.position - transform.position;
            direction = direction.normalized;
            curDirection = findFacingDir(direction);

            Vector3 distance = transform.position - player.transform.position;
            if(distance.x > moveSpeed)
                //newPos.x -= moveSpeed;
                move.x = -1 * moveSpeed;

            else if(distance.x < -moveSpeed)
                //newPos.x += moveSpeed;

                move.x = 1 * moveSpeed;
            if(distance.y > moveSpeed)
                //newPos.y -= moveSpeed;
                move.y = -1 * moveSpeed;
            else if(distance.y < -moveSpeed)
                //newPos.y += moveSpeed;
                move.y = 1 * moveSpeed;

            //transform.position = newPos;
            transform.parent.GetComponent<CharacterController>().Move(move);
            // GetComponent<CharacterController>().Move(move);

        }
    }
Esempio n. 4
0
    public void face(Player.FacingDirection dir)
    {
        switch (dir)
        {
        case Player.FacingDirection.Up:
            goalDirection = up;
            break;

        case Player.FacingDirection.Down:
            goalDirection = down;
            break;

        case Player.FacingDirection.Left:
            goalDirection = left;
            break;

        case Player.FacingDirection.Right:
            goalDirection = right;
            break;
        }
    }
 /// <summary>
 /// The direction of the sprite to face.
 /// </summary>
 /// <param name="direction"></param>
 public void faceDirection(Player.FacingDirection direction)
 {
     info.facingDirection = direction;
 }