부득이하게 3D 환경에서 2D UI를 사용하지 않고, Sprite Renderer를 이용해 UI와 유사한 형태를 구현해야하는 상황이 생긴다. 이 때 클릭 이벤트를 구현하기 위해서는 2D Box Collider Component를 삽입해야한다. Collider의 크기는 Renderer에 적용한 이미지 크기에 따라 유동적으로 조절하면 된다. 이후에 다음과 같은 스크립트를 적용해 클릭 이벤트를 구현할 수 있다. public class SpriteRendererClickDetector : MonoBehaviour { bool isOver = false; void Update() { if(isOver && Input.GetMouseButtonDown(0)) { //좌클릭 이벤트 } if(isOver && Inpu..
Unity에서 SkinnedMeshRenderer를 사용하는 경우, Blender를 사용하거나 Transform을 변경할 때 Mesh Collider를 Update해줘야하는 상황이 발생한다. 이 때 다음 코드를 사용하면 원활하게 변경할 수 있다. //Input Data SkinnedMeshRenderer meshRenderer; MeshCollider collider; //Mesh Init Mesh bakedMesh = new Mesh(); collider.sharedMesh = bakedMesh; //Transform or Blend meshRenderer.SetBlendShapeWeight(0, 1); //Mesh Update meshRenderer.BakeMesh(bakedMesh); collide..
유니티에서 로컬 폴더에 접근해 폴더 안의 파일까지 모두 지우고 싶을 때, 오류가 발생하며 정상 작동하지 않는 경우가 있다. 이럴 때는 디렉토리의 모든 파일을 먼저 지운 후 폴더를 지우는 코드를 실행하면 정상적으로 삭제를 진행할 수 있다. 아래 코드에 path 변수에 원하는 디렉토리 경로를 지정할 경우 정상 삭제되는 모습을 확인할 수 있다. string path = "path" foreach (string directory in Directory.GetDirectories(path)) { try { Directory.Delete(directory, true); } catch (IOException) { Directory.Delete(directory, true); } catch (UnauthorizedAc..
Unity Button UI에는 Navigation이라는 Option이 존재[None, Everything, Horizontal, Vertical, Automatic, Explicit] 이벤트에 따른 다른 Button UI의 활성화를 도와주는 기능 - Horizontal : ←, → 방향키에 반응 - Vertical : ↑, ↓ 방향키에 반응 - Automatic : 주변의 UI에 자동으로 반응 - Explicit : 키보드 방향별로, 버튼별로 매핑 가능 Automatic으로 설정할 경우 원하지않는 활성화가 일어날 수 있음 3D 프로그램에 2D UI를 고정적으로 사용하는 경우에는 꼭 침착하게 모든 Button UI에 Navigation을 None으로 바꿔주는 것이 좋을 듯 함
1. 한글을 지원하는 폰트 파일을 Asset 폴더에 Import ex. Assets/Fonts/NanumBarunGothic.ttf 2. Window -> TextMeshPro -> Font Asset Creator 클릭 3. Source Font File에 1번에서 Import한 Font.ttf 파일을 선택한 뒤 아래와 같이 폰트 정보를 입력 - Sampling Point Size : Custom Size / 30 - Padding : 4 - Packing Method : Fast - Atlas Resolution : 4096 / 4096 - Character Set : Custom Range - Character Sequence(Decimal) : 32-126[영어], 44032-55203[한글], ..