본문 바로가기

무제_LR

스테이지 별 카메라 설정

스테이지 프리팹의 데이터 클래스인 StageDataContainer에 CameraSize를 추가했습니다.

 

public class CameraService : MonoBehaviour, ICameraService
{
  [SerializeField] private Camera mainCamera;

  public void SetSize(float size)
    => mainCamera.orthographicSize = size;
}

이 데이터는 스테이지 세팅 과정에서 CameraService의 SetSize에게 인자로 넘겨줘 카메라 직교 사이즈를 변경해줍니다.

 

public class StageDataContainer : MonoBehaviour
{
  public float CameraSize;

  //기타 데이터 생략
  
  private void OnDrawGizmos()
  {
    if (CameraSize <= 0.0f) 
      return;

    Gizmos.color = Color.aquamarine;
    var widthRatio = 16.0f / 9.0f;
    var widthHalf = CameraSize * widthRatio;
    var heightHalf = CameraSize;

    var leftTop = new Vector2(-widthHalf, heightHalf);
    var rightTop = new Vector2(widthHalf, heightHalf);
    var leftBottom = new Vector2(-widthHalf, -heightHalf);
    var rightBottom = new Vector2(widthHalf, -heightHalf);

    Gizmos.DrawLine(leftTop, rightTop);
    Gizmos.DrawLine(leftTop, leftBottom);
    Gizmos.DrawLine(rightBottom, rightTop);
    Gizmos.DrawLine(rightBottom, leftBottom);
  }
}

시각적으로 중요한 데이터다 보니 기즈모로 미리보기도 만들었습니다.

 

아쿠아마린이면 좀 더 푸른색일 줄 알았는데 기즈모 기본 색깔이더라구요.

 

다음 할거:

타일맵 좀 더 작고 세세한 타일도 콜라이더 이쁘게 적용되나 확인