void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "JohnGhost") { Debug.Log("PlayerCollision"); CameraRigScript.ShakeCamera(0.2f, 0.2f); UI_HPGauge.HPDamage(zombieValue); // ManagerGame.john_hp -= zombieValue; // HP 게이지 조작 //메세지Test Debug.Log("Zombie 부딪혀서 HP깎임 - ManagerGame.john_hp = " + ManagerGame.john_hp); ShowMessage2.ShowMessage_Zombie(); zombie_movement = Zombie_Movement.zombie_forward_idle; isMoving = false; GetComponent <BoxCollider2D>().gameObject.SetActive(false); } else if (coll.gameObject.tag == "Zombie") { if (r > coll.gameObject.GetComponent <CharacterZombie>().r) { nextPosition = prevPosition; transform.position = prevPosition; //state = State.Idle; //isMoving = false; } } else if (coll.gameObject.tag == "Tile_Rock" || coll.gameObject.tag == "Tile_Sea") { nextPosition = prevPosition; transform.position = prevPosition; } }
void zombie_forward() { if ((r = MoveUtil.MoveByFrame(transform, nextPosition, moveSpeed)) == 0.0f) { transform.position = nextPosition; zombie_movement = Zombie_Movement.zombie_forward_idle; _animator.SetInteger("zombie_movement", (int)zombie_movement); isMoving = false; //ManagerGame.zombieMove = false; isCalcued = false; return; } }
void ProcessNextPosition() { prevPosition = transform.position; float tx = transform.position.x; float ty = transform.position.y; float jx = johnGhost.transform.position.x; float jy = johnGhost.transform.position.y; float distanceX = Mathf.Abs(tx - jx); float distanceY = Mathf.Abs(ty - jy); Vector2 next = transform.position; r = Mathf.Sqrt(distanceX * distanceX + distanceY * distanceY); if (r <= range) { if (distanceX < distanceY) { if (ty < jy) { // ^ next.y += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_back; } else { // v next.y -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_forward; } } else if (distanceX > distanceY) { if (tx < jx) { // > next.x += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_right; } else { // < next.x -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_left; } } else // distanceX == distanceY 정사각형 { int selectNumber = Random.Range(0, 2); if (ty > jy) { if (tx > jx) { if (selectNumber == 0) { // < next.x -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_left; } else if (selectNumber == 1) { // v next.y -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_back; } } else { if (selectNumber == 0) { // > next.x += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_right; } else if (selectNumber == 1) { // v next.y -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_forward; } } } else { if (tx > jx) { if (selectNumber == 0) { // < next.x -= movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_left; } else if (selectNumber == 1) { // ^ next.y += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_back; } } else { if (selectNumber == 0) { // > next.x += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_right; } else if (selectNumber == 1) { // ^ next.y += movePixel; nextPosition = next; zombie_movement = Zombie_Movement.zombie_back; } } } } } _animator.SetInteger("zombie_movement", (int)zombie_movement); isMoving = true; //ManagerGame.zombieMove = true; isCalcued = true; }
void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "JohnGhost") { Debug.Log("PlayerCollision"); CameraRigScript.ShakeCamera(0.2f, 0.2f); UI_HPGauge.HPDamage(zombieValue); // ManagerGame.john_hp -= zombieValue; // HP 게이지 조작 //메세지Test Debug.Log("Zombie 부딪혀서 HP깎임 - ManagerGame.john_hp = " + ManagerGame.john_hp); ShowMessage2.ShowMessage_Zombie(); zombie_movement = Zombie_Movement.zombie_forward_idle; isMoving = false; GetComponent<BoxCollider2D>().gameObject.SetActive(false); } else if (coll.gameObject.tag == "Zombie") { if (r > coll.gameObject.GetComponent<CharacterZombie>().r) { nextPosition = prevPosition; transform.position = prevPosition; //state = State.Idle; //isMoving = false; } } else if (coll.gameObject.tag == "Tile_Rock" || coll.gameObject.tag == "Tile_Sea") { nextPosition = prevPosition; transform.position = prevPosition; } }