Chapter 5-3. 카메라 : 플레이어를 따라가던 카메라가 벽에 막히면 벽 뚫고 지나가기

Date:     Updated:

카테고리:

태그:

인프런에 있는 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 방향 벡터
        • 값을 가진 벡터를 더해준 값.


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Unity Lesson 2 카테고리 내 다른 글 보러가기

댓글 남기기