미로스 - 개인 진행 결과물(디테일 등) - 2. 맵의 변화
- 100 powerun
- 2024년 11월 27일
- 1분 분량
최종 수정일: 2월 6일

맵의 변화는 하나밖에 존재하지 않습니다. 앞의 투명한 콜라이더는 보스전이 시작됨을 알리는 트리거 콜라이더 입니다.
public class BossTrigger : MonoBehaviour
{
public Rigidbody2D door;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.layer == LayerMask.NameToLayer("Player"))
{
Debug.Log("보스룸에 입장함");
door.gravityScale = 1;
GameObject.Find("TestBoss").GetComponent<TestBoss>().onBattle = true;
Destroy(this.gameObject);
}
}
}
보스룸에 입장한 뒤 콜라이더에 닿으면 보스의 체력 바와 이름을 나타내는 보스 캔버스를 활성화 시키고 보스의 onBattle을 true로 바꾸어 전투를 시작하게 만들어 줍니다. 그 후 이 트리거를 제거하여 계속되는 반응을 없에어 최적화를 해줍니다.
door.gravityScale = 1;
이중 맵에 변화를 주는 코드는 딱 이 한 줄입니다. 위의 스크린샷을 보면 투명한 콜라이더 외에도 천장에 하나 더 붙어 있는 콜라이더가 보이는데, 이 콜라이더는 콜라이더만 존재하는 것이 아닌 기둥이 천장에 가려진 것으로 이 코드를 통해 중력값을 가진 뒤 플레이어의 퇴로를 막는 역할을 합니다.
해당 Door 오브젝트는 프로젝트의 레이어 설정으로 천장끼리는 충돌 판정이 없지만, 땅과 플레이어와는 충돌 판정을 만들어 중력값을 가지면 땅에 닿아 마치 차단문이 내려오듯 닫히게 되고, 플레이어가 전투를 회피하는 것을 막아줍니다.
Commentaires