게임에서 시선을 카메라 방향으로 따라간다거나
World Space 모드의 Canvas에 있는 UI를 항상 카메라를 바라보게 해야할 때가 있다.
아래의 코드를 대상 오브젝트에 부착시킨 뒤 모드를 선택하면 적용 된다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookAtCamera : MonoBehaviour
{
private enum Mode{
LookAt,
LookAtInverted, //* 반전 시켜 보기
CameraForward,
CameraForwardInverted, //* 반전 시켜 보기
}
[SerializeField] private Mode mode;
private void LateUpdate() {
switch (mode) {
case Mode.LookAt:
transform.LookAt(Camera.main.transform);
break;
case Mode.LookAtInverted:
//* 카메라 방향을 알아내서 그 방향 만큼 돌려줘서 반전시키기
Vector3 dirFromCamera = transform.position - Camera.main.transform.position;
transform.LookAt(transform.position + dirFromCamera);
break;
case Mode.CameraForward:
//* 카메라 방향으로 Z축 (앞뒤)을 바꿔주기
transform.forward = Camera.main.transform.forward;
break;
case Mode.CameraForwardInverted:
//* 카메라 방향으로 Z축 (앞뒤)을 바꿔주고 반전시키기
transform.forward = -Camera.main.transform.forward;
break;
default :
break;
}
}
}
'유니티 > 유니티 관련 지식' 카테고리의 다른 글
유니티 Canvas의 World Space 렌더 모드로 UI 만들기 (0) | 2023.03.19 |
---|---|
유니티 C# 구조체 struct 알아보는김에 클래스와 비교하기 (0) | 2023.03.13 |
유니티 TextMeshPro 머티리얼(Material) 오류 해결하기 (0) | 2023.03.05 |
유니티 체력바 구현하는 법 (0) | 2023.02.23 |