이게 Unity에 기본 기능으로 탑재되지 않은 게 말이 돼?!
요약
본 영상은 Unity 에디터의 효율성을 높여주는 유료 애셋 '스마트 마우스'를 소개합니다. 이 도구는 X-ray 선택, 오브젝트 스크롤 확인 등 개발 과정에서 발생하는 사소하지만 중요한 문제들을 해결해 줍니다. 특히 표면에 오브젝트를 배치하거나 정렬하는 기능들이 인상적이며, $24.99의 가치를 지니는지 직접 테스트합니다.
핵심 포인트
- X-ray select 기능을 통해 숨겨진 오브젝트도 선택 가능하여 편리함.
- 오브젝트 스크롤 확인 및 표면 스냅/정렬 등 다양한 기능 제공.
- 스마트 컨텍스트 메뉴를 활용해 효율적인 배치와 정렬이 가능함.
- Unity 개발 과정의 사소한 불편함을 해결하는 유용한 에디터 도구임.
가끔씩 등장하는 도구들이 마치 Unity에 기본적으로 내장되어 있어야 할 것 같은 느낌을 줄 때가 있습니다. 이 도구들은 스스로 해결하려고 생각조차 못 했을 일상적인 문제를 해결해 줍니다. 그런데 누군가가 이걸 해결한 것을 보면, '이게 왜 이미 존재하지 않는 거지?'라는 생각이 들죠. 아시다시피 저는 이 채널에서 Unity 에디터 관련 콘텐츠를 많이 만듭니다. 저는 직접 많은 에디터를 만들고 싶은데, 그 과정 자체가 흥미롭고 종종 솔루션들이 각 프로젝트에 맞춤화되어야 한다고 생각하기 때문입니다.
하지만 Asset Store에는 제가 실제로 투자할 가치가 있다고 생각하는 Unity 에디터 애셋들이 많이 있습니다. 종종 문제는 '이것을 배우는 데 시간을 쓰는 것이 내가 관심 있는 일인가, 아니면 그냥 사서 쓸 만큼 충분히 저렴한가'의 문제인 것 같습니다. 저는 비교적 자주 Unity subreddit을 둘러보면서 무슨 일이 일어나고 있는지, 사람들이 무엇을 작업하고 있는지 확인합니다. 그리고 보시다시피 사람들은 자신의 게임과 자신이 개발 중인 다양한 도구, 시각 효과 등을 공유합니다.
여기는 정말 좋은 곳입니다. 사람들의 활동을 구경하는 것이 멋지죠. 그래서 지난달에 이걸 발견했는데 [music] Unity에서 마우스 상호작용에 초점을 맞춘 에디터 도구였습니다. 이 도구는 정말 멋진 기능들을 많이 가지고 있지만, 제 눈길을 사로잡은 결정적인 기능이 하나 있는데 바로 'X-ray select'입니다. 그래서 오늘은 이 도구에 대해 이야기하고, 이 스마트 마우스 도구의 일부 기능들이 어떻게 작동하는지, 그리고 실제로 $24.99를 쓸 가치가 있는지 알아보고자 합니다.
그래서 제가 이 도구를 지금 바로 구매해 보고, 현재 개발 중인 프로젝트에 어떻게 작동하고 상호작용하는지 살펴보겠습니다. 그 프로젝트는 제 게임 'Cabs of Chaos'입니다. 그리고 한 장면에서 이 도구가 제공하는 다양한 기능들이 어떻게 작동하는지 살펴보고, 예를 들어 X-ray 선택 기능을 통해 돈을 쓸 가치가 있는지 판단해 보겠습니다. 설치하기 전에, 저는 문서(documentation)를 확인하려고 합니다. 제가 그냥 바보처럼 시간만 낭비하지는 않을 겁니다.
자, 빠르게 살펴보겠습니다. 음, 스마트 마우스(smart mouse)에는 다음과 같은 기능들이 포함되어 있습니다. 커서 아래의 모든 것을 선택하고, 키를 누른 채 포인터 아래에 있는 모든 오브젝트—메시(mesh), 콜라이더(collider), 스프라이트(sprite), 월드 스페이스 UI 등—를 스크롤하여 확인한 다음 선택할 수 있습니다. 위에 무엇이 그려져 있든 상관없습니다. 이것이 제가 가장 관심 있는 핵심 기능입니다. 정말 놀랍네요. 아주 좋은 방법이에요. 항상 잘못된 것을 클릭하는 경우가 많잖아요. 그래서 마우스가 무언가 근처에 있을 때, 우리가 통과하여(click through) 선택할 수 있게 해주는 정말 멋진 방법입니다.
컨트롤(control)이 그렇게 작동하는 것 같습니다. 그리고 장면 오브젝트 위로 마우스를 가져갈 수 있습니다. 저는 이것을 시도해 볼 생각에 기대됩니다. 표면에 오브젝트를 배치할 수 있습니다. 서피스 스냅 도구(surface snap tool)로 그냥 끌어다 놓거나, 커서 위치에 붙여넣기(paste at the cursor)하여 스냅하고 정렬할 수 있습니다. 상당히 멋지네요. 그래서 오브젝트를 그냥 붙여넣으면 표면에 스냅되고 정렬됩니다. 스마트 컨텍스트 메뉴(smart context menu)를 사용하면 표면에 오브젝트와 프리팹(prefab)을 생성할 수 있고, 어디든 오브젝트를 스냅하고 정렬하며, 물리 효과가 있는 오브젝트를 배치하는 등 훨씬 더 많은 기능을 사용할 수 있습니다. 심지어 자신만의 항목을 추가할 수도 있습니다.
정말, 정말 멋지네요. 자, 이제 패키지 매니저로 이동해서 에셋을 다운로드해 보겠습니다. 빠르네요. 스크립트 파일 몇 개만 있는 것 같아요. 좋습니다. 바로 작은 에디터 창이 열렸습니다. 지금 보시는 것은 최근에 많은 에셋들이 하는 방식인데, 다른 에셋들과 차별화되는 아주 영리한 방법이라고 생각합니다. 리뷰를 쓰기 전에 문서로 안내하거나, 질문을 하기 위해 Discord에 가입하도록 유도하기 때문입니다.
따라서 Unity 에셋 제작을 고려하고 있다면, 저는 이것이 상당히 좋은 아이디어라고 생각합니다. 다만, 이 창이 에디터 창을 열 때마다 항상 나타나지 않도록 하고, 숨길 수 있는 옵션이 있는지 확인해야 합니다. 그렇지 않으면 정말 짜증 나거든요. 저는 외부 에셋들이 메인 프로젝트 창을 부풀리는 것을 별로 좋아하지 않습니다. 그래서 그들만의 작은 폴더에 넣는 것을 선호합니다. 따라서 그것이 작동하는 것이 중요하며, 작동하는 것 같습니다. 자, 여기 상단에 스마트 마우스용 도구들이 있는 것 같네요.
좋습니다. 메뉴 최상단에 스마트 마우스를 활성화할 수 있도록 프로그래밍되어 있습니다. 그리고 '스마트 마우스 설정'이라는 멋진 드롭다운 표시도 있습니다. 그래서 켜고 끌 수 있고, 스냅 및 붙여넣기(snap and paste), 감지 기능(detection) 같은 것들이 있습니다. 이 드롭다운을 내려보겠습니다. 여기가 제 게임인 Cabs of Chaos의 첫 번째 맵이고, 일종의 다운타운 레벨입니다. 저는 여기에 아트 작업의 주요 부분을 대부분 마쳤습니다. 나중에 추가하고 싶은 디테일과 물건이 많이 있지만, 그룹으로 묶어 놓은 오브젝트들이 상당히 많습니다.
자, 우선 이걸 테스트해 보기 좋은 장소가 있을 것 같아요. 카메라 시야 안에 울타리 때문에 가려진 오브젝트들이 몇 개 있습니다. 음, 그리고 보시다시피 여기서 클릭하면 그냥 제 맵 프리팹의 루트 레벨이 선택되는데, 이건 좀 별로예요. 그래서 만약 제가 지금 이 울타리를 선택하고 싶다면, 컨트롤을 누르면 이런 작은 초록색 선택 영역이 생기는데, 이게 정말 멋져요. 음, 그리고 저는 그 뒤에 의자를 가져오고 싶다고 생각해서 마우스 휠을 스크롤해 봤어요.
보세요. 제 마우스 커서 아래의 잠재적인 오브젝트들을 선택해 줍니다. 너무 좋아요. 정말 좋네요. 마치... 보세요. 방금 이걸 선택할 수 있었고, 그리고 움직일 수도 있어요. 그래서 카메라 각도를 유지하면서 업데이트되게 할 수 있다는 게 좋아요. 저는 이게 정말 좋을 것 같아요. 솔직히 이 기능 하나만으로도 가치가 있어요. 그냥 컨트롤을 누르고 있는 게 너무 좋아요. 심지어 선택 윤곽(selection outline)까지 얻을 수 있다는 사실이 정말 멋진데, 왜냐하면 클릭하는 것이 내가 클릭하려고 하는 대상인지 보장해 주기 때문이에요.
정말 도움이 돼요. 정말, 정말 똑똑한 기능이에요. 마음에 들어요. 그래서 저는 실제로 이 바위 아래에 숨겨진 울타리 오브젝트가 있어요. 여기요. 그래서 만약 제가 컨트롤을 누르고 바위 위로 마우스를 가져간 다음 마우스 휠을 움직이면, 사실 저 울타리를 잡을 수 있는데, 이전에는 이걸 하려면 그냥 뒤에 있는 것을 숨기지 않는 한 방법이 없었어요. 네, 정말 어려웠을 거예요. 그래서 저는 이거를 옮기고 선택해야 했을 거예요.
이 영상을 보고 계신 분들 중 환경 레벨이나 기타 요소에서 이런 문제에 직면했던 경험이 있다면, 이 기능이 왜 그렇게 유용한지 바로 이해하실 수 있을 거예요. 보세요, 여기 나무들이 잔뜩 있어요. 뒤쪽에 있는 나무 몇 개를 가져오고 싶어요. 이 친구를 잡고 싶은데, 지금 클릭만 하면 되네요. 이걸 모르겠어요. 정말 짜증 나는 부분이에요. 그리고 여기에 올라가서 이것을 클릭할 수는 있지만, 모든 것에 대해 그렇게 해야 하는 건 원하지 않잖아요. 그래서요, 그냥 컨트롤 키를 누른 상태로 마우스를 가져다 대서 선택하는 거예요.
이게 왜 Unity의 기본 기능이 아닐까요? 이건 엔진에 내장되어야 해요. 그래야만 해요. 어, 이제 이 도구의 일부가 되었고, 저는 이걸 모든 곳에서 사용할 것 같아요. 감명받았어요. 뭐라고 말해야 할까요? 정말 간단한 도구예요. 정말로요. 너무 단순하지만, 문제를 해결해 줘요. 제 장면에 캔버스 UI 요소는 없지만, 이것이 캔버스 UI의 요소를 선택하는 데도 도움이 될 수 있다는 점을 지적할 가치가 있어요. 제가 생각하기에 어디든 트랜스폼(Transform)들이 많이 쌓여 있을 경우, 아마 가장 유용한 기능일 거예요.
이 도구를 사용하면서 매일 엄청난 시간을 절약할 수 있다는 게 보이네요. 이 부분의 선택 기능은 이제 봐도 설명이 충분해요. 그래서 더 이상 보여드리지는 않을게요. 이게 아마 그 기능 세트인 것 같은데, 정말 좋아요. 자, 다음으로 서피스 스냅(Surface Snap) 도구를 살펴봅시다. 이것은 기본적으로 씬(Scene) 내에서 오브젝트들을 끌어다 놓으면서 그것들이 씬 지오메트리(geometry)의 다른 부분에 붙어 있도록 보장해 주는데, 무언가를 옮기고 싶을 때 정말 유용할 수 있어요. 왜냐하면 보통 Unity에서는 무언가를 끌어다 놓으면, 예를 들어 여기에 이것을 빼내면,
제가 이걸 그냥 끌어당기면, 특정 평면에 맞춰서 끌어야 해요. 마음대로 움직일 수가 없어요. 그래서 여기로 옮기고 싶으면, 보이시죠? 지오메트리 속에 묻혀버려요. 그런데 경사면을 따라 위로 이동시키고 싶다면, 그걸 할 만한 방법이 없어요. 있어야 하는데, 없습니다. 그래서 이게 그 문제를 해결하는 것 같아요. 자, 여기서 이 버튼을 클릭해 볼게요. 그러면 저희가 물건들을 움직일 수 있게 해주는 것 같아요. 이걸 이렇게 하면, 여기 보세요. 이제 회전도 됐고, 제가 끌어올리면 경사면을 따라 위아래로 끌어당겨지는 게 보여요.
그래서 정말 어디든 배치할 수 있어요. 그리고 이걸 복사해서 붙여넣으면, 마우스가 향하는 곳 어디든 붙여지는 것 같아요. 벽에 놓아보세요. 보세요. 아주 작은 단위의 증분들이지만, 레벨을 디자인하거나 레벨에 변경 사항을 만들 때 시간이 지남에 따라 절약되는 시간은 상당히 쌓일 거예요. 왜냐하면 하루 동안 수백, 수천 개의 오브젝트를 움직여야 할 수도 있거든요. 그리고 이게 5~6초를 아껴준다고 가정해 봅시다. 그건 상당한 양의 시간을 만듭니다. 아래에서 계산해보시면 얼마나 되는지 알 수 있을 거예요.
하지만 여러분이 얼마나 효율적일 수 있는지 분명히 보실 수 있을 거라고 확신해요. 제가 레벨 디자인을 많이 했고, Unity의 기본 기능 중 일부에 지쳤다는 것을 알아차릴 수 있나요? 못 느끼시겠다면, 저만 그런 건가요? 하지만 네, 정말 좋다고 생각해요. 그냥 물건들을 잡아서 움직일 수 있어요. 제 말은, 이게 시간을 너무 많이 절약해 줄 것 같아요. [웃음] 기본적으로 표면에 스냅된다는 게 좋아요. 정말 좋은 기능이에요. 저는 단지 이게 기본 기능이 아니라는 점에 짜증을 느낄 뿐이에요.
저는 이게 훌륭하고 사용자 경험(UX)도 좋고, 사용자 인터페이스(UI)도 마음에 들지만, 이 두 가지 기능만으로도 저에게 엄청난 시간을 절약해 줄 거예요. 그래서 우리가 여기서 할 수 있는 또 다른 멋진 것 중 하나는 장면 보기(scene view)에 물리(physics)를 추가하는 것입니다. 제가 실제로 이걸 해보고 작동하는지 확인해 볼게요. 여러 개의 오브젝트를 쌓아 놓을게요, 그렇죠? 이렇게요. 그리고 여기에 또 하나를 더 배치하고요. 그리고 이 모든 것을 선택할게요. 마우스 오른쪽 버튼을 클릭하고 '선택에 맞춰 물리 설정(selection, settle with physics)'을 고릅니다.
정말 좋아요. 여기 나무 세 그루가 있어요. 제가 할 수 있다고 생각하는 다른 것은 변형(transforms)을 다양하게 만들고 무작위로 크기를 조정하는 것입니다. 아, 알겠습니다. 표면 스냅(surface snap)이 켜져 있는 상태에서 이걸 하려니 안 되네요. 그래서 이건 제외해야 할 것 같아요. 이건 그냥 Unity를 완전히 다운시켰어요. 좋아요, 다시 시도해 보겠습니다. 이번에는 표면 스냅을 활성화하지 않았어요. 자, 이 나무들을 선택해 볼게요. 표면 선택이 꽤 강렬한 것 같네요. 아마 이걸 켜고 끄는 것을 번갈아 가며 해야 할 거예요. 하지만 이제 이 선택 영역을 잡고 '변형 다양화(variate transforms)'를 고릅니다.
네, 이게 조금 더 나은 것 같아요. 그래서 초기화(reset)할 수 있어요. 그리고 이건 계속 작동하는 것 같네요. 그리고 크기를 약간 다양하게 만들 수도 있고요. 자, 이건 제 실수예요. 저는 근거가 여기에 있어야 하거든요. 그러면 그냥 아, 안돼요. 초기화하면 완전히 리셋될 거예요. 좋아요, 여기 '무작위 재설정(rerandomize)'할 수 있는 버튼이 있으면 좋을 텐데. 아마 그럴 수는 없을 거예요. 이런 건 짜증 나네요. 하지만 음, 그냥 다시 누를 수 있을 것 같아요. 이건 유용해요. 여러분이 돌리고 싶고 다르게 보이게 만들고 싶은 대규모 오브젝트 그룹에서 이게 유용하다는 걸 알겠어요.
그리고 각기 다른 각도로 오프셋(offset)할 수도 있어요. 이론적으로는 여기에 물리 시뮬레이션(physics simulation)을 돌릴 수도 있죠. 그래서 이것도 멋진 기능이에요. 그리고 이 선택 메뉴에는 여기 없는 모든 것을 위해 바닥에 스냅하는(snap to ground) 기능도 있습니다. 그래서, 아마 제 씬(scene)의 대부분을 돌아다니면서 레벨에 존재하는 모든 오브젝트를 클릭해서 이걸 적용할 거예요. 네, 이거 사뒀어야 했는데. 처음 지도를 배치할 때 이런 게 있었으면 좋았을 텐데.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube Game Dev Guide의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기