반응형
NPC 클릭하면 플레이어 쳐다보게 하는 법
01 변수 설정
public Transform player;
private Camera mainCamera;
private Quaternion originalRotation;
02 메인카메라와 NPC의 초기 회전값 설정
void Start()
{
mainCamera = Camera.main;
originalRotation = transform.rotation;
}
03 마우스 왼쪽 버튼이 클릭 되었을때 Raycast를 통해 오브젝트 판별
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
OnInteractablenpccontroller(hit);
}
}
}
04 클릭한 오브젝트가 NPC인 경우 플레이어를 바라보게 하고 아닐 경우 원래 회전값의 초기값으로 설정
void OnInteractablenpccontroller(RaycastHit hit)
{
Collider other = hit.collider;
if (hit.collider.CompareTag("NPC"))
{
transform.LookAt(player.position);
}
else
{
transform.rotation = originalRotation;
}
}
실행 영상
반응형
'유니티 공부 > Unity' 카테고리의 다른 글
Unity - NavMeshAgent (0) | 2023.08.02 |
---|---|
Unity - SerializationException: Type 'UnityEngine.MonoBehaviour' in Assembly 'UnityEngine.CoreModule 에러 고치는 법 (0) | 2023.08.02 |
Unity - Scene이동 후 Player가 떠 있는 경우, 바닥에 있지 않는 경우 (0) | 2023.07.18 |
Unity - 다른 객체들을 기반으로 특정 버튼의 기능을 설정하는 방법 (0) | 2023.07.18 |
Unity - panel이 켜져있는데 뒤에 GameObject가 클릭되는 경우 (0) | 2023.07.17 |
댓글