ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 카메라 화면 비율에 대한 오브젝트간의 거리 차이의 고찰
    Unity 2024. 8. 16. 18:17
    728x90

    해상도와 화면 비율의 차이
        
        - 게임에서는 다양한 해상도와 화면 비율을 지원해야 하기 때문에 이 과정에서 화면의 가로와 세로 비율이 달라질 수 있다.
        - 예를 들어, 16:9 화면 비율과 4:3 화면 비율에서는 동일한 두 점 간의 x축 거리라도 화면에 보이는 크기가 달라질 수 있고, 이는 카메라가 장면을 렌더링할 때, 가로 축과 세로 축에서 거리를 다르게 취급함

     

    거리 측정의 일관성 문제
        
        - 두 오브젝트 간의 거리를 측정할 때, 이 거리는 실제로는 동일할 수 있지만, 화면 비율에 따라 다르게 보일 수 있다.
        - 이로 인해, 게임의 논리적 처리가 화면 비율에 따라 달라질 수 있고, 예를 들어, 가로로 넓은 화면에서는 두 오브젝트가 더 가깝게 보일 수 있고, 세로로 긴 화면에서는 멀어 보일 수 있기 때문에 이런 상황에서 두 오브젝트 간의 거리를 일관성 있게 계산하는 것이 중요

     

     

    • 월드 좌표 거리 계산:
      • Vector3 worldDistance = Player.position - OtherPlayer.position;
      • 먼저 두 오브젝트 간의 실제 월드 좌표계에서의 거리 벡터를 계산. 이 벡터는 x, y, z 축을 따라 두 오브젝트 간의 거리
    • 가로 세로 비율에 따른 거리 보정:
      • Vector3 adjustedDistance = new Vector3(worldDistance.x / mainCamera.aspect, worldDistance.y, worldDistance.z);
      • 카메라의 가로 세로 비율 (mainCamera.aspect)을 고려하여 x축 방향의 거리를 보정.
        • aspect : 가로 대비 세로 비율(가로가 세로의 몇배인가)
      • 이는 화면 비율이 달라져도 가로 축의 거리 차이가 동일하게 유지되도록 하기 위한 조치.
    • 조정된 거리 계산:
      • float adjustedMagnitude = adjustedDistance.magnitude;
      • 보정된 거리 벡터의 크기(거리)를 계산하여, 이 크기가 실제 거리와 일관되게 사용

     

     

    728x90
Designed by Tistory.