안녕하세요!!
오늘 포스팅 할 내용은 Unity의 On Click() 입니다!
Unity는 다양한 이벤트를 처리하기 위한 인터페이스를 제공하며, 이벤트가 발생하면 호출이 되도록 구성됩니다.
클릭, 키보드 입력, 터치 등이 이벤트등이 이것에 해당됩니다.
오늘은 그 중에서 Unity에서 제공되는 UI에서 기본적으로 가지고 있는 OnClick()에 대해 알아보겠습니다!
Unity는 상호작용이 가능한 UI들을 지원해주고 있는데, 상호작용이 가능한 UI들은 Inspector 창에 On Click()을 가지고 있습니다.
위 와 같이 버튼을 생성하면 On Click()이 생성되어 있는 것을 확인 할 수 있습니다.
이제 이벤트 시스템을 관리 할 빈오브젝트를 만들고 오브젝트 안에 EventManager란 Script를 추가해 주겠습니다.
그리고 오브젝트를 On Click에 등록해주고 함수를 지정해주면 끝!! On클릭이벤트는 이렇게 간단하게 구현이 가능합니다!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EventManager : MonoBehaviour
{
public void ButtonClick() //버튼 클릭 이벤트에 대한 함수를 만들어 준다.
{
}
}
이런식으로 만들어진 함수에 대해서 이벤트를 지정해 주면 클릭 시 이벤트가 발생하여 동작하는것을 볼 수 있습니다!
그렇다면 On Click() 이 존재하지 않는 UI는 어떻게 이벤트를 지정해 줘야 할까요?
유니티는 그런 이벤트에 대한것들도 지원 해 주고있는데요.
EventManager의 함수를 새로 구성해 보겠습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EventManager : MonoBehaviour
{
public void IPointerEnterHandler() {
//OnPointerEnter 포인터가 오브젝트 안에 들어갈때 오출
}
public void IPointerExitHandler()
{
//OnPointerExit 포인터가 오브젝트 에서 나올때 호출
}
public void IPointerDownHandler()
{
//OnPointerDown 포인터가 오브젝트 위에서 눌렸을 때 호출
}
public void IPointerUpHandler()
{
//OnPointerUp 포인터를 오브젝트 에서 뗄 때 호출
}
public void IPointerClickHandler()
{
//OnPointerClick 동일 오브젝트에서 포인터를 누르고 뗄 때 호출
}
public void IInitializePotentialDragHandler()
{
//OnInitializePotentialDrag 드래그 타겟이 발견되었을대 호출, 값을 초기화 할 때 사용할 수 있음.
}
public void IBeginDragHandler() {
//OnBeginDrag 드래그가 시작되는 시점에 드래그 대상 오브젝트에서 호출.
}
public void IDragHandler() {
//OnDrag 드래그 오브젝트가 드래그되는 동안 호출
}
public void IEndDragHandler()
{
//OnEndDrag 드래그가 종료됐을 때 드래그 오브젝트에서 호출
}
public void IDropHandler()
{
//OnDrop 드래그를 멈췄을 때 해당 오브젝트에서 호출
}
public void IScrollHandler()
{
//OnScroll 마우스 휠을 스크롤했을 때 호출
}
public void IUpdateSelectedHandler() {
//OnUpdateSelected 선택한 오브젝트에서 매 틱마다 호출
}
public void ISelectHandler()
{
//OnSelect 오브젝트를 선택하는 순간 호출
}
public void IDeselectHandler()
{
//OnDeselect 선택한 오브젝트를 선택 해제할 때 호출
}
public void IMoveHandler()
{
//OnMove 이동 이벤트(왼쪽, 오른쪽, 위쪽, 아래쪽 등)가 발생했을 때 호출
}
public void ISubmitHandler()
{
//OnSubmit 전송 버튼이 눌렸을 때 호출
}
public void ICancelHandler()
{
//OnCancel 취소 버튼이 눌렸을 때 호출
}
}
이런식으로 OnClick()을 지원 하지 않는 UI들도 이벤트를 지원해 줌으로써 같은 역할을 할 수 있는 오브젝트로 만들어 줄 수 있다는 사실!
그렇다면 다음시간엔 저 함수 들로 어떤 이벤트들을 만들어 낼 수 있을지에 대해 포스팅 해보도록 하겠습니다!
그럼 저는 20000!!!
아참... 이 자료는 스틱코드의 글을 참고하여 만들어 졌습니다!
https://stickode.com/detail.html?no=2355
'C#' 카테고리의 다른 글
[C#][Unity]인터넷에서 시간 가져오기! (0) | 2021.09.03 |
---|---|
[C#][Unity] 유닛 이동 기능 만들기 (0) | 2021.08.29 |
[C#][Unity] 로딩 화면 만들기 (0) | 2021.08.15 |
[C#][Unity]타이머 만들기! (0) | 2021.08.12 |
[C#][Unity] 싱글톤 패턴(Singleton) 설명 (0) | 2021.07.26 |