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); } }
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; }