반응형
카메라
플레이어를 따라가던 카메라가 벽에 가려지면, 벽 앞으로 카메라 이동시키기
📜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 방향 벡터, 값을 가진 벡터를 더해준 값.
반응형
'공부 > 인프런 - Rookiss' 카테고리의 다른 글
Part 3-6-2. 애니메이션 : State 패턴, State Machine (0) | 2023.08.22 |
---|---|
Part 3-6-1. 애니메이션 : 기초, 블렌딩 (0) | 2023.08.22 |
Part 3-5-2. 카메라 : 클릭한 곳으로 플레이어 이동하기 (0) | 2023.08.21 |
Part 3-5-1. 카메라 : 카메라가 플레이어를 따라다니게 만들기 (0) | 2023.08.21 |
Part 3-4-2. Raycast, LayerMask, Tag, 투영의 개념 (0) | 2023.08.21 |