Chapter 5-3. 카메라 : 플레이어를 따라가던 카메라가 벽에 막히면 벽 뚫고 지나가기
카테고리: Unity Lesson 2
태그: Unity Game Engine
인프런에 있는 Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click
Chapter 5. 카메라
🚖 플레이어를 따라가던 카메라가 벽에 막히면 벽 뚫고 지나가기
플레이어를 제대로 잘 찍을 수 있도록 플레이어를 따라가던 카메라가 벽이나 장애물에 막히면 바로 뚫고 지나가도록 하자!
📜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
방향 벡터
- 값을 가진 벡터를 더해준 값.
- 거리
- 플레이어 위치로부터
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기