마우스 클릭 위치를 아는 방법
1. MonoBehaviour의 OnMouseDown 메서드를 사용하는 방법
2. 수동으로 마우스 위치를 사용하여 레이캐스트하는 방법
3. UGUI 이벤트 시스템을 사용하는 방법
MonoBehaviour의 OnMouseDown 메서드
OnMouseDown을 구현한 MonoBehaviour 클래스 스크립트가 부착되어 있는
오브젝트에 Collider가 있다면,
왼쪽 마우스 버튼을 누를 때 OnMouseDown이 즉시 호출된다.
- 예제 코드
using UnityEngine;
public class Clicker : MonoBehaviour
{
void OnMouseDown()
{
// GameObject가 클릭되었을 때 실행되는 코드
}
}
수동으로 마우스 위치를 사용하여 레이캐스트
어떤 입력 시스템을 사용하든 다음 단계를 따른다.
1. 마우스 버튼이 눌러졌는지 확인한다.
2. 눌러졌다면, 마우스 포인터의 위치를 찾는다.
3. 스크린 내의 마우스 포인터 위치에서 화면으로 Ray를 생성한다.
4. Raycast 메서드를 사용하여 Ray를 쏜다.
5. Raycast로 어떤 객체가 맞았는지 확인한다.
- 예제 코드
using UnityEngine;
public class Clicker : MonoBehaviour
{
Camera m_Camera;
void Awake()
{
m_Camera = Camera.main;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 mousePosition = Input.mousePosition;
Ray ray = m_Camera.ScreenPointToRay(mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
// Use the hit variable to determine what was clicked on.
}
}
}
}
유니티 공식 튜토리얼을 참고하여 작성하였습니다.
'유니티 개발 기술 > 스크립팅 & 프로그래밍' 카테고리의 다른 글
Vector3 클래스의 다양한 함수 (0) | 2023.07.22 |
---|---|
Mathf 클래스의 다양한 함수 (1) | 2023.07.22 |
두 벡터 사이를 보간하거나 이동하는데 사용되는 함수 (0) | 2023.07.20 |
BroadcastMessage, SendMessage, SendMessageUpwards (0) | 2023.07.16 |
유니티 비동기 작업을 위한 AsyncOperation (0) | 2023.06.14 |