Unity3D_MMO - Camera

k_hyun·2022년 10월 9일
0

Unity_MMO_Project

목록 보기
4/33

CameraController.cs

[SerializeField]
Vector3 _delta = new Vector3(0.0f, 6.0f, -5.0f);

[SerializeField]
GameObject _player = null;
    
void LateUpdate()
    {
        
        if (_mode == Define.CameraMode.QuarterView)
        {
            RaycastHit hit;
            // 카메라와 플레이어 사이 벽이 있는 경우 카메라 위치 조정
            if (Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall")))
            {
                float dist = (hit.point - transform.position).magnitude * 0.8f;
                transform.position = _player.transform.position + _delta.normalized * dist;
            }
            else
            {
                transform.position = _player.transform.position + _delta;
                transform.LookAt(_player.transform);
            }
        }
    }

레이캐스트를 활용하여 카메라와 플레이어 사이 벽이 있는 경우 카메라의 위치를 조절.

실행사진

[카메라와 플레이어 사이 벽 X]

[카메라와 플레이어 사이 벽 O]

0개의 댓글