Learning
When: 1학년 6월 1일
How:
마우스를 가져다 대면 색이 변하는 인터페이스를 만들기 위해 GPT에게 질문하여 알게된 메서드 종류입니다.
Understanding:
OnMouse 메서드의 종류에는 7가지가 있습니다. (UI는 작동하지 않습니다)
- OnMouseEnter(): 마우스 커서가 Collider 위에 올라갔을 때 1번 실행됨
- OnMouseOver(): 마우스 커서가 Collider 위에 올라가 있을 때 프레임 마다 실행
- OnMouseExit(): 마우스 커서가 Collider 밖으로 나갔을 때 1번 실행됨
- OnMouseDown(): 마우스 커서가 Collider 안으로 들어오고 마우스 왼쪽 버튼을 눌렀을 때 1번 실행됨 (오브젝트 클릭)
- OnMouseUp(): 마우스 왼쪽 버튼을 땠을 때 1번 실행됨 (오브젝트 클릭 해제)
- OnMouseUpAsButton(): 마우스 왼쪽 버튼을 누르고 땐 Collider가 같을 때 1번 실행됨 OnMouseUp 보다 느리게 실행됨 (UI 버튼으로 설명하자면 무언가를 눌렀을 때 밖에서 때면 실행이 안되면 좋겠는 버튼 (2번째 기회))
- OnMouseDrag(): 마우스를 누른 상태로 움직일 때 실행됨 (움직일 때만 실행되며, 가만히 있으면 실행 안됨)
UI에 쓰이는 메서드들은 약 13개 정도이며, 일반 오브젝트에도 사용할 수 있습니다. 그리고 interface를 상속받아야 사용할 수 있습니다.
일반 오브젝트가 겹쳐 있을 때는 UI(Button, Image 등)만 실행됩니다 (마우스 관련된 메서드는 Ray를 쏴서 작동하는데, UI가 먼저 막아버리기 때문입니다). 그리고 일반 오브젝트를 사용할 때는 카메라에 PhysicsRaycaster 컴포넌트를 추가해야 합니다. 아래는 필요한 인터페이스입니다.
- OnPointerEnter(): 마우스 포인터가 오브젝트 안에 들어왔을 때 실행 (IPointerEnterHandler)
- OnPointerExit(): 마우스 포인터가 오브젝트 밖으로 나왔을 때 실행 (IPointerExitHandler)
- OnPointerDown(): 오브젝트에 포인터가 있고 왼쪽 버튼을 눌렀을 때 실행 (IPointerDownHandler)
- OnPointerUp(): 오브젝트에 포인터가 있고 왼쪽 버튼을 땠을 때 실행 (IPointerUpHandler)
- OnPointerClick(): 누른 위치와 뗀 위치가 같을 때 OnPointerUp 보다 늦게 실행 (IPointerClickHandler)
- OnBeginDrag(): 드래그를 시작했을 때 실행 (IBeginDragHandler)
- OnDrag(): 마우스를 누른 상태로 움직일 때 실행됨 (움직일 때만 실행되며, 가만히 있으면 실행 안됨) (IDragHandler)
- OnEndDrag(): 드래그가 끝났을 때 실행 (IEndDragHandler)
- OnDrop(): A오브젝트를 B오브젝트까지 드래그해서 B오브젝트 위에서 드래그를 끝내면 B오브젝트에서 A오브젝트의 정보가 담긴 메서드가 실행됨 (IDropHandler)
- OnScroll(): 오브젝트에 포인터가 있고 휠을 스크롤 할 때 (IScrollHandler)
Result: 여러 마우스와 관련된 메서드들이 있으니 요긴하게 써먹도록 하시기 바랍니다.
'UnityEngine' 카테고리의 다른 글
| [Unity] 여러가지 반복문 (1) | 2025.06.04 |
|---|---|
| [Unity] 오디오 사용하기 (0) | 2025.06.03 |
| [Unity] 오브젝트 왔다 갔다 하게 만들기 (0) | 2025.05.11 |
| [Unity] 파티클 두번 보이는 버그, 파티클 투명도(Alpha) 조절 (0) | 2025.05.10 |
| [Unity] 유니티 코드에서 참조 타입과 값 타입 (0) | 2025.05.10 |