🙇‍♀️벽 앞 카메라 이동

  • 플레이어를 가로막아서 플레이어가 안보일 때
  • 가로막은 물체 앞으로 카메라가 이동하기

🪐카메라 이동

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

  • 카메라도 프리펩으로 만들어 사용가능
  • 다른 씬으로 이동할 때
  • 상점 등 카메라를 사용할 때

태그:

카테고리:

업데이트: