본문 바로가기

유니티 엔진

(3)
[Unity] 오브젝트 클릭과 터치 감지 구현하기 이 포스트에서는 유니티 엔진에서 오브젝트를 PC 환경에서 클릭 혹은 모바일에서 터치하는 방법을 알아본다. 2D를 기준으로 작성했다.IPointerDownHandler와 IPointerUpHandler먼저 오브젝트에 대한 터치를 구현하기 위해서는 위 두 인터페이스가 필요하다. UnityEngine.EventSystems에서 제공되는 인터페이스로 각각의 역할은 다음과 같다.IPointerDownHandler대상 오브젝트를 눌렀을 때 호출되는 콜백이다.IPointerUpHandler대상 오브젝트를 눌렀다가 뗐을 때 호출되는 콜백이다. 사용자는 이 두 인터페이스를 활용하여 오브젝트를 터치할 때의 동작을 구현할 수 있다. 하지만 단순히 이 두 가지 인터페이스를 사용한다고 할 수 있는 건 아니고 아래 설명할 준비를..
[Unity] 스프라이트 시트로 랜덤 파티클 만들기 유니티에서는 여러 개의 스프라이트가 한 이미지 파일에 들어있는 집합을 이용하여 무작위로 선택된 스프라이트 모양으로 파티클을 발생시킬 수 있다. 이 포스트에서는 스프라이트 시트를 구해 위와 같은 무작위 파티클을 구현하는 방법을 알아본다.스프라이트 시트 구하기무료로 스프라이트 시트를 다운로드할 수 있는 인터넷 사이트가 있다. https://www.pngwing.com/ko/search?q=%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8+%EC%8B%9C%ED%8A%B8 여기서 원하는 시트를 다운로드 하도록 하자.스프라이트 시트 생성하기 받은 이미지를 프로젝트에 넣고 인스펙터에서 Sprite Mode > Multiple로 설정한 뒤 Apply를 눌러 적용한다.  그리고 Spr..
[유니티 엔진] WaitForSeconds vs WaitForSecondsRealtime 유니티에선 코루틴의 리턴 중 WaitForSeconds와 WaitForSecondsRealtime가 있다. WaitForSeconds는 Time.timeScale이 반영된 시간을 기다리고 WaitForSecondsRealtime은 현실 시간을 기다린다. 여기서 Time.timeScale은 게임에서 시간이 어떤 속도로 흘러갈 것인지 조정하는 factor로 이해할 수 있다. 가령 Time.timeScale을 0.5로 수정하면 현실의 시간보다 2배 느리게 흘러간다. 즉 게임속 흘러가는 시간에 맞춰 기다려야 하는 것이 있으면 WaitForSeconds를 쓰고 그렇지 않으면 WaitForSecondsRealtime를 쓰면 된다.