본문 바로가기
개발/C#

유니티 C# BoxCollider2D 일정 개수 이상 겹쳐있을 경우 코드 작성

by SPNK 2024. 2. 11.
반응형
  • 코드 작성
using UnityEngine;

public class MonsterCollisionManager : MonoBehaviour
{
    public int maxMonsters = 3;  // BoxCollider2D 내에서 허용되는 몬스터의 최대 수

    void OnCollisionStay2D(Collision2D collision)
    {
        // 충돌 객체가 몬스터인지 확인
        if (collision.gameObject.CompareTag("Monster"))
        {
            // 현재 BoxCollider2D 내에 있는 모든 몬스터 가져오기
            Collider2D[] monsters = Physics2D.OverlapBoxAll(GetComponent<BoxCollider2D>().bounds.center, GetComponent<BoxCollider2D>().bounds.size, 0f, LayerMask.GetMask("Monster"));

            // 몬스터 수가 제한을 초과하는지 확인
            if (monsters.Length > maxMonsters)
            {
                // 초과하는 몬스터를 비활성화
                DisableExceedingMonsters(monsters);
            }
        }
    }

    void DisableExceedingMonsters(Collider2D[] monsters)
    {
        // 허용된 한도를 초과하는 몬스터를 비활성화
        for (int i = maxMonsters; i < monsters.Length; i++)
        {
            monsters[i].gameObject.SetActive(false);
        }
    }
}
반응형

댓글