Loading the catalog…
Loading the catalog…
이 글은 개인 프로젝트 'Dungeon Adventure'을 만들며 겪은 이슈 기록입니다. Dungeon Adventure [Github] 문제 상황 방에 들어가는 순간 문이 닫히면서 플레이어가 문에 끼거나 밀려남 원인 확인 1차 확인 트리거 경계가 안쪽 벽면과 같아서 플레이어가 문 칸 위에 있을 때 입장 이벤트가 발생 → 플레이어 위에서 문 콜라이더가 켜짐 2차 확인 단순히 방 트리거를 줄여도 문제가 해결되지 않음 들어오는 문 방향에 따라 해결된 모습을 보이기도 하고 그대로인 모습을 보이기도 함 트리거가 줄어들기만 한게 아니라 위치가 정중앙이 아님을 확인 해결 public Vector3 GetRoomCenterWorldPos(Room room) { DungeonGridConverter gridconverter = new DungeonGridConverter(); Vector2Int offset = gridconverter.GetRoomOffset(room, tileWidth, tileHeight); int x = offset.x + (tileWidth / 2); int y = offset.y + (tileHeight / 2); Vector3Int centerPos = new Vector3Int(x, y, 0); // 수정 전 // return tilemap.GetCellCenterWorld(centerPos); // 수정 후 return tilemap.CellToWorld(centerPos); } 짝수 크기(10×10) 방의 중심은 칸 사이의 경계인데, GetCellCenterWorld로 칸의 중심을 구해서 0.5칸 어긋남 GetCellCenterWorld ⇒ CellToWorld로 변경 이후 트리거 크기 재변경 BoxCollider2D roomcollider = roomMap.AddComponent<BoxCollider2D>(); roomcollider.isTrigger = true; roomcollider.size = new Vector2(tileWidth - 3, tileHeight - 3); 트리거 크기 조건 벽과 트리거 사이 틈 > 0 → 문 칸 위에서는 입장 이벤트가 발생하지 않음 틈 < 플레이어 콜라이더 크기 → 트리거를 피해서 방을 지나갈 수 없음 −4는 1칸 틈이 생겨 트리거를 우회할 수 있음을 확인, -3으로 결정 결과 문에 끼는 현상 없이 입장하고 트리거를 건너뛰고 방을 통과하는 경우도 없어짐 아쉬운 점 및 배운 점 지금의 해결 방식은 방 크기가 홀수가 되면 다시 반 칸 어긋나게 된다. 또한 트리거 크기도 방 크기에 묶여 있는 상태다. 문 콜라이더를 켜기 전에 플레이어가 문 칸을 벗어났는지 확인하는 방식이 더 근본적인 해결이라는 생각이 든다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[Unity/C#]방 입장 시 문 콜라이더에 끼는 이슈. 이 글은 개인 프로젝트 'Dungeon Adventure'을 만들며 겪은 이슈 기록입니다. Dungeon Adventure [Github] 문제 상황 방에 들어가는 순간 문이 닫히면서 플레이어가 문에 끼거나 밀려남 원인 확인 1차 확인 트리거 경계가 안쪽 벽면과 같아서 플레이어가 문 칸 위에 있을 때 입장 이벤트가 발생 → 플레이어 위에서 문 콜라이더가 켜짐 2차 확인 단순히 방 트리거를 줄여도 문제가 해결되지 않음 들어오는 문 방향에 따라 해결된 모습을 보이기도 하고 그대로인 모습을 보이기도 함 트리거가 줄어들기만 한게 아니라 위치가 정중앙이 아님을 확인 해결 public Vector3 GetRoomCenterWorldPos(Room room) {…