공부/인프런 - Rookiss
Part 3-5-3. 카메라 : 카메라가 벽에 막힐시, 벽 앞으로 카메라 이동시키기
셩잇님
2023. 8. 21. 15:58
반응형
카메라
플레이어를 따라가던 카메라가 벽에 가려지면, 벽 앞으로 카메라 이동시키기
📜CameraController.cs
void LateUpdate()
{
if (_mode == Define.CameraMode.QuaterView)
{
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);
}
}
}
_delta 👉 플레이어와 카레아 사이의 적정 Vector3 차이. 고정된 값.
플레이어의 위치로부터 _delta 방향으로 대충 _delta.magnitude 길이의 광선을 쐈을 때 “Wall” 레이어를 가진 오브젝트가 충돌 됐다면 👉 플레이어와 카메라 사이를 가로막는 장애물에 부딪쳤다는 얘기!
플레이어 위치로부터 카메라가 장애물을 피해 새롭게 옮길 위치
거리
플레이어로부터 장애물이 있는 곳 까지의 거리에서 대충 0.8 곱한 값. (장애물 앞으로 넘어 가도록)
방향
_delta 방향 벡터, 값을 가진 벡터를 더해준 값.
반응형