private void OnTriggerExit(Collider other) { if (other.CompareTag("Monster")) { MonsterScript monster = other.GetComponent <MonsterScript>(); // 기존에 영역에 들어있는 몬스터가 다시 처리되면 무시 if (!inHitAreaMonster.Contains(monster)) { return; } inHitAreaMonster.Remove(monster); } else if (other.CompareTag("Beatable Object")) { BeatableObjectScript temp = other.GetComponent <BeatableObjectScript>(); // 기존에 공격 영역에 들어있는 물건이 다시 처리되면 무시 if (!inHitAreaObject.Contains(temp)) { return; } inHitAreaObject.Remove(temp); } }
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Monster")) { MonsterScript monster = other.GetComponent <MonsterScript>(); // 기존에 영역에 들어있는 몬스터가 다시 처리되면 무시 if (inHitAreaMonster.Contains(monster)) { return; } inHitAreaMonster.Add(monster); } else if (other.CompareTag("Beatable Object")) { BeatableObjectScript temp = other.GetComponent <BeatableObjectScript>(); // 기존에 공격 영역에 들어있는 물건이 다시 처리되면 무시 if (inHitAreaObject.Contains(temp)) { return; } inHitAreaObject.Add(temp); } else if (other.CompareTag("Player")) { PlayerScript player = other.GetComponent <PlayerScript>(); // 기존에 영역에 들어있던 플레이어면 무시 if (inHitAreaPlayer.Contains(player)) { return; } inHitAreaPlayer.Add(player); } }
private void OnTriggerEnter(Collider other) { if (forPlayer) { if (other.CompareTag("Monster")) { // 몬스터 데미지 처리 MonsterScript monster = other.GetComponent <MonsterScript>(); monster.TakeDamage(damage, moveVector, 0.1f); // 관통 여부에 따라.. if (!isPenetrating) { // 이동 정지 if (movingCoroutine != null) { StopCoroutine(movingCoroutine); } // 총알 삭제 StartCoroutine(Removing()); } } else if (other.CompareTag("Beatable Object")) { BeatableObjectScript temp = other.GetComponent <BeatableObjectScript>(); temp.Hit(); // 관통 여부에 따라.. if (!isPenetrating) { // 이동 정지 if (movingCoroutine != null) { StopCoroutine(movingCoroutine); } // 총알 삭제 StartCoroutine(Removing()); } } else if (other.CompareTag("Obstacle")) { // 관통 여부에 따라.. if (!isPenetrating) { // 이동 정지 if (movingCoroutine != null) { StopCoroutine(movingCoroutine); } // 총알 삭제 StartCoroutine(Removing()); } } } else { if (other.CompareTag("Player")) { // 플레이어 데미지 처리 PlayerScript player = other.GetComponent <PlayerScript>(); if (player.canTakeDamage) { player.TakeDamage(damage, moveVector, 1); // 관통 여부에 따라.. if (!isPenetrating) { // 이동 정지 if (movingCoroutine != null) { StopCoroutine(movingCoroutine); } // 총알 삭제 StartCoroutine(Removing()); } } } } }