Unity

    [Unity] TMPro를 이용해 Text에서 Icon을 사용해보자

    [Unity] TMPro를 이용해 Text에서 Icon을 사용해보자

    게임을 하다보면 툴팁 등에서 글 중간에 Icon이 사용된 모습을 심심찮게 볼 수 있다. 오늘 우리는 TMPro를 이용해 Text 중간중간에 Icon을 사용하는 방법을 알아볼 것이다. TMPro가 무엇인지, 어떻게 쓰는지는 모두가 알 것이라고 생각한다. 최신 Unity에서 TMPro가 기본으로 사용되니 모른다면 알아두자. 먼저 우리는 Slice 된 아이콘이 필요하다. 아이콘 샘플과 Slice 방법은 내 블로그 이전 글에 있으니, Sample이 필요하거나 Slice 방법을 모른다면 아래 링크를 들어가라. [Unity] 아틀라스(Atlas) 된 이미지를 Slice하는 방법 게임을 하다보면 아래와 같은 이미지를 한번쯤 본 적이 있을 것이다. 우리는 위와 같은 기법을 아틀라스(Atlas)라고 부른다. 이미지를 효..

    [Unity] 아틀라스(Atlas) 된 이미지를 Slice하는 방법

    [Unity] 아틀라스(Atlas) 된 이미지를 Slice하는 방법

    게임을 하다보면 아래와 같은 이미지를 한번쯤 본 적이 있을 것이다. 우리는 위와 같은 기법을 아틀라스(Atlas)라고 부른다. 이미지를 효율적으로 저장하기 위한 방식이라고 생각하면 편하다. 이번에 우리는 위와 같이 아틀라스 된 이미지를 게임내에서 사용할 수 있도록 Slice하는 방법에 대해 배울것이다. 먼저 아틀라스 되어있는 Sprite 파일이 필요하다. 이번 시간에 쓸 Sprite 파일은 하단에 첨부하였다. 그리고 Sample Sprite의 Sprite Mode를 Multiple로 바꿔주자. Multiple로 바꿔줘야 우리가 이 Sprite를 Slice해서 16장의 아이콘으로 사용할 수 있다. 적용을 완료했다면 Sprite의 인스펙터창에서 Sprite Editor 버튼을 눌러주자. Sprite Edit..

    [Unity] 특정 Collider 안에 완전히 포함되어 있는지 확인하기

    [Unity] 특정 Collider 안에 완전히 포함되어 있는지 확인하기

    나는 어떤 구역안에 오브젝트가 들어가야할 때 여태까지는 Collider 혹은 Distance를 써서 해결해왔다. 하지만 두 방법 모두 치명적인 단점이 있는데, Collider 1. 코드가 더럽다. 2. Collider로 구역을 가두리를 해줘야하기 때문에 불필요한 Collider를 많이 만들어야 한다. 3. 정육각형 이외의 범위의 경우 사용하기 힘들다. Distance 1. 원형 범위 이외의 범위는 사용이 힘들다. (특히 모서리 부분) 위와 같은 이유로 하나의 Collider로 이 Collider 안에 완전히 오브젝트가 들어왔는지 확인하는 코드를 짜고 싶었다. 구글링 결과 Collider의 Bounds를 이용하여 해결이 가능했다. Bounds에 대한 API는 아래와 같다. Unity - 스크립팅 API: ..

    [Unity] Scroll View 내용에 맞게 크기 조절하기

    [Unity] Scroll View 내용에 맞게 크기 조절하기

    Scroll View를 사용하다보면 스크롤이 끝까지 되지 않고, 돌아온다 거나 하는 현상이 일어나고는 한다. 이는 Content의 크기가 충분히 크지 않기 때문이다. 위의 흰색 실선과 같이 Content의 크기가 설정되어 있다면 Scroll View는 아주 약간 수직으로 스크롤 되고, 수평방향으로는 아무리 스크롤을 해도 제자리로 돌아오게 된다. 따라서 스크롤 되기 원하는 만큼 Content의 크기를 키워줘야 하는 것이다. 가로의 크기를 키웠더니 수평 방향 스크롤바에 스크롤 가능한 공간이 생긴 것을 확인할 수 있다. 이와 같이 스크롤 영역은 Viewport를 넘어가는 Content 영역의 크기만큼 생긴다고 볼 수 있다. 그렇다면, 이 스크롤 영역이 게임 내에서 동적으로 바뀌어야한다면 어떻게 구현해야할까? ..

    [Unity] Hinge Joint의 표기오류

    [Unity] Hinge Joint의 표기오류

    Unity를 통해 VR 프로젝트를 개발하며, Hinge Joint로 문을 구현하고 있었다. 그런데 몇몇 문들이 알수 없는 버그가 있었는데, 게임을 실행하자마자 알수없는 힘에 의해 문이 강하게 열리는 현상이 있었다. 다른 모든 오브젝트와 충돌을 꺼봐도 같은 현상이 일어나서 충돌에 의한 현상은 아닌것으로 판단하고, 마지막 남은 용의자인 Hinge Joint를 건드렸다. 결과적으로는 Hinge Joint Limit의 표기오류로 일어난 현상이었다. 표기는 위와 같이 되지만, 실제로 열리는 범위는 파랑선으로 표기한 각도와 같다. 이와같은 현상이 나타날 때는 Hinge Joint가 표기해주는 각도가 아닌, 실제 오브젝트의 각도를 보고 넣어주면 되겠다. 최소로 열렸을 때와 최대로 열렸을 때의 각도를 잘 봐두고 수동으..

    [Unity] 화면에 맞게 UI와 Sprite 크기 조절하기

    [Unity] 화면에 맞게 UI와 Sprite 크기 조절하기

    정성 들여 만든 앱을 핸드폰에 설치하는 순간 내가 공들여 만든 UI의 배열이 깨지거나, UI의 크기가 들쭉 날쭉 해진다. 오늘은 그런 UI의 크기를 화면 크기에 맞게 조절하는 방법을 배울 것이다. 먼저 위와 같이 Canvas를 생성한 후, Render Mode를 Screen Space - Camera로 설정해 준다. 그리고 Render Camera에 Main Camera를 넣어준다. 여기까지 했다면 UI문제는 해결되었다. 이제 화면의 해상도에 맞게 조절되는 UI를 확인할 수 있다. 자 그렇다면 이제 문제는 Sprite다. 이놈의 Sprite는 크기가 고정된 것 마냥 화면의 해상도를 아무리 바꿔도 스스로의 크기를 고수한다. 화면이 작아져도 크기가 그대로라 화면 밖으로 삐져나오고, 배열도 그대로라 다루기가 ..