Unity 3D

개발/Unity

Sprite Renderer Click Event 구현

부득이하게 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

Sprite Renderer Overlay Shader 구현

Sprite Renderer가 항상 Camera에 가장 가깝게 보이도록(Overlay) 구현하기 위해서는 커스텀 쉐이더를 적용해야 한다. Shader "Custom/SpriteOverlay" { Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1) [P..

개발/Unity

Unity Button UI가 의지대로 활성화 되지 않는 경우

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으로 바꿔주는 것이 좋을 듯 함

njsung
'Unity 3D' 태그의 글 목록