[Tip] Unity 버텍스 스냅핑(Vertex Snapping)을 활용한 오브젝트 정렬
·
Unity
유니티(Unity)로 복잡한 3D 월드를 만들다 보면, 오브젝트들을 정확하게 맞추는 일은 생각보다 까다로운 작업이다. 두 건물 모서리를 딱 붙이거나, 플랫폼 끝에 다른 요소를 빈틈없이 연결해야 할 때, 마우스로 미세하게 조정하는 것은 시간 낭비일 뿐만 아니라 결과물도 어딘가 어색해 보이기 마련이다.이럴 때 유니티 에디터가 숨겨놓은 단축키 `V`의 편리함을 느껴보자. 이 간단한 키 하나로 오브젝트의 버텍스(Vertex), 즉 꼭짓점끼리 자석처럼 착 달라붙게 만들 수 있다. 미세 조정 없이 한 번에 완벽한 정렬을 완성하는 버텍스 스냅핑(Vertex Snapping) 기능의 활용법을 자세히 알아보자. 버텍스 스냅핑(Vertex Snapping), 정확히 무엇일까?버텍스 스냅핑은 유니티의 에디터 기능 중 하나..
콤마(,) 때문에 게임이 멈춘다고? Unity 문자열 파싱 오류와 InvariantCulture의 중요성
·
Unity
게임 개발 중, 특정 국가의 유저에게서 `게임이 튕긴다`, `버그 때문에 앱이 종료된다`는 보고를 받았다면 가장 당황스러울 것이다. 특히 이 문제가 터키, 러시아 등 일부 지역에서만 문자열 파싱 과정 중에 발생한다면, 디버깅은 미궁에 빠지기 쉽다.대부분의 경우, 이 현상은 문화권마다 다른 소수점 구분 기호(Decimal Separator) 때문에 발생한다. 유니티(Unity)에서 문자열을 숫자로 변환할 때, 시스템의 지역 설정에 따라 `콤마(,)`와 `마침표(.)` 중 어떤 것을 소수점으로 인식할지가 달라지기 때문이다. 이 글에서는 이 미스터리한 버그의 원인을 파헤치고, 모든 문화권에서 안전하게 문자열을 파싱하는 `CultureInfo.InvariantCulture` 사용법을 알아본다. 문화권별 소수점..
[Tip] Unity 인스펙터에서 표현식으로 오브젝트를 간편하게 정렬하는 방법
·
Unity
유니티(Unity)로 씬(Scene)을 구성할 때, 여러 개의 게임 오브젝트를 규칙적이거나 무작위로 배치해야 하는 작업은 빈번히 발생하는 작업중에 하나이다. 수십 개의 오브젝트를 일일이 인스펙터(Inspector)에서 위치 값을 수정하거나, 매번 배치를 위한 임시 코드를 작성하는 것은 시간 낭비이자 번거로운 일이다.혹시 유니티 에디터의 트랜스폼(Transform) 인스펙터 입력 필드에 마치 엑셀 함수를 쓰듯 간단한 표현식을 입력하는 것만으로, 선택된 모든 오브젝트의 위치를 한 번에 정렬할 수 있다는 사실은 유니티를 오래 사용한 사용자라도 몰랐던 기능중에 하나일 것이다.이 글에서는 유니티 에디터에 표현식 기능을 활용하여 오브젝트를 일렬, 랜덤, 원형 등 원하는 대로 손쉽게 정렬하는 방법을 소개한다. 이 ..
[Tip] 유니티(Unity) 개발 속도 획기적으로 줄이는 방법 : Enter Play Mode
·
Unity
너무 자주 등장하는 Reload Script Assemblies 팝업 화면유니티 툴을 사용하게 되면 가장 오랜 시간을 소요하는 것 중에 하나가 바로 에디터에서 플레이를 실행했을 때 어김없이 등장하는 `Reload Script Assemblies` 팝업 화면일 것이다. 프로젝트가 크지 않다면 그렇게 큰 문제가 아니겠지만 스크립트나 파일들이 조금이라도 많아진다면 이 시간은 점점 길어지고, 이는 곧 개발 생산성 저하로 이어지게 된다. 단순히 몇 초의 문제가 아니라, 테스트를 위해 하루에도 수십 번씩 많게는 수백 번씩 반복되는 대기 시간은 작업의 흐름을 끊고 효율을 떨어뜨린다. 다음 상황을 한번 가정해 보겠다. 6개월짜리 프로젝트 개발, 한 달에 20일 작업하루에 100번 정도 유니티 에디터 플레이 모드 실행 ..
Unity C# 스크립트에서 summary 주석 활용하여 코드 가독성 높이는 방법
·
Unity
Unity로 개발할 때, C# 스크립트는 프로젝트의 핵심 역할을 한다. 스크립트가 복잡해질수록 코드의 의도를 명확히 파악하는 것은 매우 중요해진다. 이때 `summary` 주석은 단순한 설명 이상의 강력한 도구로 활용된다. 이 글에서는 Unity 개발자들이 summary 주석을 어떻게 효과적으로 사용하고, 그 이점을 최대한 활용하는 방법에 대해 기술한다.summary 주석이 중요한 이유summary 주석은 C#의 XML 문서 주석 형식 중 하나로, 클래스, 메서드, 프로퍼티, 필드 등에 대한 간결한 설명을 제공한다. Unity 개발자에게 특히 중요한 이유는 다음과 같다.`자동 완성 기능 강화`: VS Code에서 코드를 작성할 때, summary 주석은 해당 요소에 대한 설명을 툴팁 형태로 즉시 보여준다..
[Tip] Unity 에서 Scene View 카메라를 Game View에 적용시키는 방법
·
Unity
메인 카메라의 위치를 수동으로 조절하는건 너무 번거로운데,지금 Scene에 보이는 화면 그대로 Game View에 적용할 수 없을까?비효율적인 Game View 카메라 조정유니티 개발 워크플로우에서 Scene 뷰는 오브젝트 배치, 레벨 디자인, 애니메이션 프리뷰 등 다양한 작업을 위한 주된 공간이다. 반면 Game 뷰는 실제 플레이어가 보게 될 화면을 시뮬레이션한다. Scene 뷰에서 아무리 완벽하게 오브젝트를 배치하고 카메라 구도를 잡아도, Game 뷰 카메라의 위치와 회전이 Scene 뷰와는 전혀 다른 카메라로 최종 결과물은 전혀 다르게 보일 수 있다.예를 들어, Scene 뷰에서 캐릭터와 배경 오브젝트들을 아름답게 배치하고 카메라 앵글을 잡았다고 가정해 보자. 하지만 정작 Game 뷰를 확인하니 캐..
[Tip] Unity 에서 그림자 깔끔하게 표현하는 방법
·
Unity
Unity에서 그림자를 사용하다 보면 간혹 그림자에 구멍이 뚫린 듯한 현상이나 계단 현상이 나타나 당황스러울 때가 있다. 분명 그림자를 적용했는데, 왜 이렇게 어색하게 표현되는 걸까? 이런 현상은 Unity의 기본 그림자 설정이 특정 상황에서 최적화되지 않아 발생하는 경우가 많다.이번 글에서는 Unity 그림자 문제의 원인을 간단히 알아보고, 몇 가지 설정을 조정하여 깔끔하고 보기 좋은 그림자를 얻는 방법을 소개한다. 그림자 문제, 왜 발생할까?Unity에서 그림자가 이상하게 보이는 주된 원인 중 하나는 `Shadow Bias` 설정과 `Shadow Distance` 때문이다.Shadow Bias는 그림자가 드리워지는 면에서 그림자가 얼마나 `밀려날지`를 결정하는 값이다. 이 값이 너무 높으면 그림자가..