반응형
- 코드 작성
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);
}
}
}
반응형