방프리
22.01.16 UnityEvent에 대한 고찰? 본문
Unity의 UI를 살펴보면 상호작용에 대한 모든 것들이 UnityEvent로 이루어져있는걸 알 수 있다.
이를 통해서 UI의 커스터 마이징이 가능하며 여러 이벤트를 Listener에 등록하여 실행 시킬 수도 있다.
또한 최대 4개의 Generic 인수를 포함하는 UnityEvent를 선언할 수도 있다.
public UnityEvent _unityEvent;
public UnityEvent<T1> _unityEvent1;
public UnityEvent<T1, T2> _unityEvent2;
public UnityEvent<T1, T2, T3> _unityEvent3;
public UnityEvent<T1, T2, T3, T4> _unityEvent4;
인자가 포함된 UnityEvent도 하단과 같이 커스터마이징이 가능하다.
[SerializeField]
public class BoolEvent : UnityEvent<bool>
{
}
[SerializeField]
public class StringEvent : UnityEvent<string>
{
}
public BoolEvent _boolEvent;
public StringEvent _stringEvent;
이로써 Inspector 창에서 Event를 등록할 수 있고, 매개변수도 전달이 가능한 UnityEvent를 생성할 수 있다.
* 참고로 이 기능의 경우에 Unity 2020.3.24f1 LTS에서 확인하였다. 모든 버전을 체크하진 못하였으나 2019 버전에서 UnityEvent에 Parameter를 전달할 경우 (위의 BoolEvent, StringEvent처럼 선언 시) Inspector 창에서 보이지 않는 버그가 있다.
'GameEngine > UnityEngine' 카테고리의 다른 글
21.02.07 Oculus Quest VR 프로젝트를 진행하면서... (1) | 2021.02.07 |
---|---|
20.10.26 C#을 이용한 AWS S3 Bucket 파일 업로드 (0) | 2020.10.27 |
20.07.08 Mixed Reality Tool Kit 개발 기록.... (0) | 2020.07.08 |
20.06.30 Unity에서 HTML 코드 파싱하기 (0) | 2020.06.30 |
20.03.17 List 자료구조 안에 Transform 정리하기 (0) | 2020.03.17 |
Comments