C# Rookiss Part3 유니티 엔진 : 벽 앞 카메라 이동
🙇♀️벽 앞 카메라 이동
- 플레이어를 가로막아서 플레이어가 안보일 때
- 가로막은 물체 앞으로 카메라가 이동하기
🪐카메라 이동
RaycastHit hit;
if (Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall")))
{
float dist = (hit.point - _player.transform.position).magnitude * 0.8f; // 거리구하기
transform.position = _player.transform.position + _delta.normalized * dist; // 이동
}
else
{
transform.position = _player.transform.position + _delta;
transform.LookAt(_player.transform);
}
- Raycast는 bool값
Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall"))
로 가로막은 물체가 있는지 없는지 판별- 있을 때
- 카메라가 이동할 거리를 구함
- 플레이어에서 원카메라 방향벡터의 단위벡터에서 거리를 곱함
- 없을 때
- 카메라 위치를 정해놓은 거리에 두기
- 플레이어를 계속 바라보기 (LateUpdate사용)
- 있을 때
🪐Camera Prefab
- 카메라도 프리펩으로 만들어 사용가능
- 다른 씬으로 이동할 때
- 상점 등 카메라를 사용할 때