프로그래밍 월드/유니티(Unity)
[Unity] 유니티에서 화면 가로, 세로 화면을 지정하거나 고정시키기
용가리TM
2025. 2. 4. 14:29
반응형
1. Unity에서 화면을 고정하는 방법 (화면 방향 고정)
Unity에서는 화면 방향을 특정 방향으로 고정할 수 있습니다.
방법 1: Player Settings에서 설정 (정적인 방식)
- Edit → Project Settings → Player로 이동
- Resolution and Presentation 탭에서 Default Orientation 설정 변경
- Portrait (세로 모드)
- Portrait Upside Down (뒤집힌 세로 모드)
- Landscape Left (가로 모드, 카메라가 왼쪽인 상태)
- Landscape Right (가로 모드, 카메라가 오른쪽인 상태)
- Auto Rotation (자동 회전)
- Auto Rotation 선택 시, 원하는 방향을 활성화/비활성화 가능
#저는 이번 프로젝트가 가로모드로만 작동하는 방식이라서 카메라가 왼쪽일 경우 오른쪽일 경우의 가로모드만 체크하였습니다.
방법 2: 코드로 화면 방향 고정 (동적인 방식)
게임 내에서 특정 씬에서만 화면 방향을 바꾸려면 C# 코드로 설정할 수 있습니다.
using UnityEngine;
public class ScreenOrientationController : MonoBehaviour
{
void Start()
{
// 세로 화면 고정
Screen.orientation = ScreenOrientation.Portrait;
// 또는 가로 화면 고정
// Screen.orientation = ScreenOrientation.LandscapeLeft;
}
}
위 스크립트를 특정 씬에서 사용하면 해당 씬에서는 설정된 방향으로 고정됩니다.
2. 씬마다 가로/세로 변경하는 방법 (동적 변경)
씬이 변경될 때마다 화면 방향을 변경하고 싶다면 SceneManager.sceneLoaded 이벤트를 활용할 수 있습니다.
씬 변경 시 자동으로 화면 방향 바꾸기
using UnityEngine;
using UnityEngine.SceneManagement;
public class OrientationManager : MonoBehaviour
{
void Awake()
{
// 씬이 로드될 때마다 호출
SceneManager.sceneLoaded += OnSceneLoaded;
}
void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
// 씬 이름 또는 인덱스에 따라 화면 방향 변경
if (scene.name == "MainMenu")
{
Screen.orientation = ScreenOrientation.Portrait; // 세로 모드
}
else if (scene.name == "GameScene")
{
Screen.orientation = ScreenOrientation.LandscapeLeft; // 가로 모드
}
}
void OnDestroy()
{
// 이벤트 해제 (메모리 누수 방지)
SceneManager.sceneLoaded -= OnSceneLoaded;
}
}
설명
- SceneManager.sceneLoaded를 사용해 씬이 로드될 때마다 자동으로 화면 방향을 변경
- 특정 씬에서는 세로(Portrait), 다른 씬에서는 가로(LandscapeLeft)로 설정 가능
이렇게 하면 각 씬에 맞춰 자동으로 화면 방향이 변경됩니다.
반응형