반응형
Mouse 이벤트 처리하기
01 Define.cs에 MouseEvent 입력하기
public enum MouseEvent
{
Press,
Click,
}
02 변수 설정
public Action<Define.MouseEvent> MouseAction = null; // 마우스 입력
bool _pressed = false; // 상태를 저장
03 OnUpdate 메서드 설정
1) Define.MouseEvent.Press
마우스가 클릭된 경우 Define.MouseEvent.Press을 인수로 넘겨 액션에 등록된 함수들 실행
if(Input.GetMouseButton(0))
{
MouseAction.Invoke(Define.MouseEvent.Press);
_pressed = true;
}
2) Define.MouseEvent.Click
마우스가 클릭했다 뗀 경우 Define.MouseEvent.Click을 인수로 넘겨 액션에 등록된 함수들 실행
else
{
if (_pressed)
MouseAction.Invoke(Define.MouseEvent.Click);
_pressed = false;
}
04 Clear시켜주기
public void Clear()
{
MouseAction = null;
}
05 Manager에서 OnUpdate 및 Clear 실행
Manager.cs
void Update()
{
_input.OnUpdate();
}
public static void Clear()
{
Input.Clear();
}
06 MouseAction에 함수 등록
PlayerController.cs
void Start()
{
Manager.Input.MouseAction -= OnMouseClicked;
Manager.Input.MouseAction += OnMouseClicked;
}
07 MouseEvent 종류에 따른 이벤트 동작 수행
void OnMouseClicked(Define.MouseEvent evt)
{
if (evt == Define.MouseEvent.Press)
{
// 마우스를 누르는 이벤트가 발생했을 때 실행할 코드
}
else if (evt == Define.MouseEvent.Click)
{
// 마우스 클릭 이벤트가 발생했을 때 실행할 코드
}
}
참고 : 본 내용은 MMORPG PART3 강의를 수강하여 작성하였습니다.
https://www.inflearn.com/course/mmorpg-%EC%9C%A0%EB%8B%88%ED%8B%B0/dashboard
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - 마우스로 카메라 조작하기 (0) | 2023.09.20 |
---|---|
Unity - 아이템 획득 효과(아이템이 위로 올라가면서 서서히 사라지게 하기) 넣는 법 (0) | 2023.09.19 |
Unity - Mathf.Clamp (0) | 2023.09.15 |
Unity - 플레이어 따라가던 카메라가 벽에 막히면 벽 뚫기 (0) | 2023.09.15 |
Unity - Physics.OverlapBox 설명(플레이어 바닥 체크에 이용해보기) (0) | 2023.09.09 |
댓글