コード例 #1
0
    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);
        }
    }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
    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());
                    }
                }
            }
        }
    }