[챗GPT로 코딩 공부] 유니티 Gizmos로 디버깅용 그래픽 그리기

내일배움캠프 수료생들은 챗GPT를 어떻게 개발 공부에 활용할까요?
Jun 28, 2024
[챗GPT로 코딩 공부] 유니티 Gizmos로 디버깅용 그래픽 그리기
✍🏼
챗GPT, 개발 공부에 있어서 든든한 친구 같은 존재이죠. 내일배움캠프의 수강생들도 혼자 공부할 때에는 챗GPT의 도움을 받고 있는데요. 오늘은 내일배움캠프 수료생들의 챗GPT 경험담을 보고, 여러분의 개발 공부에 적용해봅시다.
 
Gizmos.DrawSphere()를 이용해 적이 플레이어를 추적하는 범위를 구현하고 싶었습니다. 구의 색이 가득차서 보는데 불편했습니다. 구의 외각선에만 색을 입히고 싶었지만 생각이 나지 않아 챗GPT에게 물어보았습니다. ‘기즈모’라는 단어가 생각나지 않았던 것이죠.
 
형수: 챗GPT에 ‘유니티 엔진에서 C# 프로그래밍을 하고 있어. 적의 추적 범위를 씬에서 표현하고 싶어.
챗 GPT: 유니티에서 적의 추적 범위를 씬에서 시각적으로 표현하는 방법은 여러 가지가 있습니다. 대표적인 방법은 Gizmos를 사용하는 것입니다. Gizmos를 사용하면 씬 뷰에서만 보이는 디버깅용 그래픽을 그릴 수 있습니다.
 
아래는 적의 추적 범위를 시각적으로 표시하는 예제입니다. 이 예제에서는 적의 추적 범위를 구체로 표시합니다.
  1. 먼저 적의 추적 범위를 나타내는 변수를 스크립트에 추가합니다.
  1. OnDrawGizmos 메서드를 사용하여 씬 뷰에 구체를 그립니다.
using UnityEngine; public class Enemy : MonoBehaviour { // 추적 범위를 나타내는 변수 public float chaseRange = 5.0f; // Gizmos를 사용하여 씬 뷰에서 추적 범위를 그립니다. void OnDrawGizmos() { // 구체의 색상을 설정합니다. Gizmos.color = Color.red; // 적의 위치에 구체를 그립니다. Gizmos.DrawWireSphere(transform.position, chaseRange); } // 다른 게임 로직 추가... }
  • chaseRange 변수는 적의 추적 범위를 나타냅니다.
  • OnDrawGizmos 메서드 내에서 Gizmos.color를 사용하여 구체의 색상을 설정합니다.
  • Gizmos.DrawWireSphere를 사용하여 적의 위치에 원형으로 추적 범위를 그립니다. 이 구체는 씬 뷰에서만 보이고 게임 플레이 중에는 보이지 않습니다.
이 코드를 사용하면 적의 추적 범위를 쉽게 시각적으로 확인할 수 있습니다. 추적 범위를 변경하면 구체의 크기도 자동으로 업데이트됩니다.
 
Gizmos.DrawSphere()와 Gizmos.DrawWireSphere()가 비슷해서 코드를 전체적으로 보면 제가 쓴 코드랑 같아 보였습니다. 작성했던 코드를 복사해서 붙여넣고 챗GPT를 활용했습니다.
 
형수:
private void OnDrawGizmos() { Gizmos.color = new Color(0, 0, 255, 255/8); Gizmos.DrawSphere(transform.position, chaseDistance); }
나도 너랑 비슷하게 했어. 근데 구체의 면에 색이 칠해져. 씬에서 적이 안보여. 구체의 외각선만 색깔이 들어가고, 구체의 면은 투명해서 적이 보였으면 좋겠어.
 
 
챗GPT:
네, 구체의 외각선만 그리고 내부는 투명하게 해서 적이 보이도록 하려면 Gizmos.DrawWireSphere를 사용해야 합니다. Gizmos.DrawWireSphere는 외각선만 그리기 때문에 내부가 투명하게 보입니다.
아래는 Gizmos.DrawWireSphere를 사용하는 예제입니다.
using UnityEngine; public class Enemy : MonoBehaviour { // 추적 범위를 나타내는 변수 public float chaseRange = 5.0f; // Gizmos를 사용하여 씬 뷰에서 추적 범위를 그립니다. private void OnDrawGizmos() { // 구체의 색상을 설정합니다. 외각선만 그리므로 알파 값은 필요 없습니다. Gizmos.color = Color.blue; // 적의 위치에 외각선만 있는 구체를 그립니다. Gizmos.DrawWireSphere(transform.position, chaseRange); } // 다른 게임 로직 추가... }
  • OnDrawGizmos는 오브젝트에 Gizmo를 그립니다.
  • Gizmos.color를 사용하여 구체의 외각선 색상을 설정합니다. 이 예제에서는 파란색(Color.blue)을 사용합니다.
  • Gizmos.DrawWireSphere를 사용하여 적의 위치에 외각선만 있는 구체를 그립니다. 이 방식으로 내부가 투명하게 되어 적이 보이게 됩니다.
이 코드를 사용하면 적의 추적 범위를 나타내는 구체의 외각선만 그려지므로 적이 가려지지 않고 잘 보이게 됩니다.
 
제가 복사해서 붙여넣기한 코드를 보고 Gizmos.DrawSphere가 아니고 Gizmos.DrawWireSphere를 쓰라고 말한 것처럼, Gizmos.DrawWireSphere를 먼저 언급해줬습니다. 덕분에 저는 Wire 가 빠졌다는 것을 알아차리고 수정해서 외각선만 표현하게 구현할 수 있었습니다.
 
 

내일배움캠프가 여러분의 러닝메이트가 되어드리겠습니다

내일배움캠프의 많은 수강생들이 부트캠프 생활을 수료하고 현업에서 개발자로 활약하고 있습니다. 내일배움캠프는 모든 운영진이 교육, 특강, 12시간 밀착 케어, 찐한 관리, 인재 채용까지 열과 성을 다해 수강생들의 꿈을 지원하고 있습니다. 수많은 장애물을 넘을 수 있도록 내일배움캠프가 든든한 러닝메이트가 되어드리겠습니다. 내일배움캠프과 함께 여러분의 개발자 여정을 시작하세요.
 
 
CREDIT
글 | 김형수 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
Share article
Subscribe to our newsletter

내일배움캠프 블로그