개인과제 중에 상호작용 오브젝트를 만들다가 막막한 부분이 생겨서 작성했다.
플레이어가 다른 오브젝트와 상호작용할 때
마우스 시점에 닿은 오브젝트에 상호작용 관련 메시지가 출력해야한다.
그리고 상호작용 키를 입력하면 해당 오브젝트의 상호작용 호출 메서드가 작동하면 된다.
여러가지의 상호작용을 만들려면
상호작용을 호출하는 메서드와 각각의 다른 내용의 상호작용이 분리되어야 한다.
그러다가 어떤 방식 생각나서 정리해보았다.
아래 이미지는 매우 자주 사용한 버튼의 OnClick 기능이다.
그리고 근래 자주 접하는 Player Input의 Invoke Unity Event 방식의 이벤트 창이다.
이름에서도 알 수 있듯이 Unity Event라는 기능을 이용한 방법들이다.
그리고 Unity는 참 고맙게도 사용자가 이 기능을 쓸 수 있도록 제공하고 있다.
public UnityEngine.Events.UnityEvent OnInteract;
간단하게 이 클래스를 선언하면
이렇게 인스펙터에서 버튼에 할당하듯 원하는 이벤트를 넣어줄 수 있다.
물론 그냥 코드에서 Action 선언하고 거기에 구독해도 된다.
사람 나름의 선호 방식이 있을테니까.
이번에 이걸 적어본 이유는 Unity에서 당연하게 표시된 기능들 중에 많은 것들이
실제로 개발자들이 사용할 수 있도록 제공하고 있는 경우가 많기 때문에 되새길 차원에서 적어보았다.
나중에 시간이 좀 남을 때 관련해서 쓸 수 있는 것들이 더 있는지 찾아보고
정리해보는 시간도 가져야겠다.
#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL