on
ai 주식투자
- Get link
- X
- Other Apps
목표: 모든 게임은 “어디서 실행되는가”에 따라 기술적 전략이 달라집니다. 본 장에서는 모바일, PC, 콘솔, VR 네 가지 대표 플랫폼의 특성과 제약을 분석하고, 각 환경에서 최적의 퍼포먼스와 UX를 구현하기 위한 유니티 설계 원칙을 다룹니다.
모바일 플랫폼은 가장 접근성이 높지만, 동시에 가장 제약이 많은 환경입니다. CPU, GPU, 메모리, 발열, 배터리 — 모든 리소스가 제한적이므로, “필요한 만큼만 계산하는 게임”이 되어야 합니다.
Screen.dpi 값을 기반으로 터치 감도 보정.#if UNITY_ANDROID Debug.Log("Android 빌드 환경"); #elif UNITY_IOS Debug.Log("iOS 빌드 환경"); #endif PC는 하드웨어 스펙이 다양하지만, 상대적으로 높은 자원을 제공합니다. 따라서 모바일 대비 비주얼 품질 향상과 입력의 정밀도에 초점을 맞춰야 합니다.
유니티의 Quality Settings에서 플랫폼별 그래픽 옵션을 구분할 수 있습니다.
PC에서는 키보드·마우스·패드 등 입력 장치가 다양합니다. New Input System을 활용해 디바이스 독립적으로 설계합니다.
public class InputExample : MonoBehaviour { private PlayerInput input; void Awake() { input = new PlayerInput(); } void Update() { Vector2 move = input.Gameplay.Move.ReadValue(); Debug.Log("입력값: " + move); } } Screen.SetResolution(1920, 1080, FullScreenMode.Windowed); PC는 프레임 제한과 VSync 설정을 통해 GPU 부하를 제어해야 합니다.
콘솔은 폐쇄적 플랫폼이지만, 성능과 최적화 일관성이 뛰어납니다. 대신 개발자 인증 절차와 전용 SDK를 반드시 거쳐야 하며, 유니티는 각 콘솔 벤더와 공식 통합된 빌드 파이프라인을 제공합니다.
콘솔의 메모리는 고정되어 있으며, 초과 시 즉시 크래시가 발생합니다. Addressables 또는 AssetBundle을 통해 스트리밍 로드 구조를 설계해야 합니다.
VR 플랫폼은 전통적인 게임보다 지각(Perception)과 지연 시간(Latency)에 민감합니다. 1프레임(16ms)의 지연도 멀미를 유발할 수 있으므로, 프레임 유지가 최우선 목표입니다.
XR Interaction Toolkit을 사용하여 입력, 트래킹, 상호작용을 관리합니다.
using UnityEngine.XR.Interaction.Toolkit; public class GrabObject : XRGrabInteractable { protected override void OnSelectEntered(SelectEnterEventArgs args) { base.OnSelectEntered(args); Debug.Log("오브젝트 잡힘!"); } } 여러 플랫폼에 동시에 대응하는 것은 기술적 복잡도를 높이지만, 유지보수 비용 절감의 핵심입니다.
public interface IPlatformService { void SaveData(string key, string value); string LoadData(string key); } 이 구조를 사용하면 Android, iOS, PC별로 서로 다른 구현을 주입할 수 있습니다.
모바일은 “가볍게”, PC는 “자유롭게”, 콘솔은 “안정적으로”, VR은 “몰입감 있게” 설계해야 합니다. 각 플랫폼은 단순히 다른 장치가 아니라, 다른 사용 맥락과 기대치를 가진 세계입니다.
즉, 플랫폼 대응의 본질은 “성능”이 아니라 “경험의 일관성”을 유지하는 일입니다.
Comments
Post a Comment