Device Simulator는 Device Simulator의 기기별 동작에 대응하는 코드를 테스트하는 데 사용할 수 있는 시뮬레이션된 클래스를 제공합니다.
다음 시뮬레이션된 클래스는 UnityEngine.Device 네임스페이스에 있습니다.
이러한 시뮬레이션된 클래스는 일반 UnityEngine 네임스페이스의 대응 클래스와 동일한 멤버를 갖고 있습니다. 일반적으로 일반 클래스를 사용하는 코드베이스의 어디에나 사용할 수 있습니다. 성능에 영향을 미치지 않으며 릴리스 빌드에서 사용할 수 있습니다.
에디터에서 Device Simulator가 활성 상태일 때, 시뮬레이션된 클래스는 시뮬레이션된 기기의 플랫폼별 동작을 모방합니다. 예를 들어 Device.SystemInfo.operatingSystem은 시뮬레이션된 기기의 Android 또는 iOS 버전을 반환합니다.
빌드된 애플리케이션이나 Device Simulator가 활성 상태가 아닌 경우 시뮬레이션된 클래스는 UnityEngine 네임스페이스의 해당 클래스와 동일한 동작을 합니다.
시뮬레이션된 클래스의 멤버는 일반 클래스와 동일하지만 Device Simulator는 모든 동작을 시뮬레이션하지는 않습니다. UnityEditor에서 Device Simulator가 시뮬레이션하지 않는 멤버는 플랫폼에 종속되지 않는 UnityEngine에 해당하는 멤버와 동일한 동작을 합니다. 예를 들어 Device Simulator는 Device.Screen.brightness를 시뮬레이션하지 않습니다. 즉, 이 멤버는 UnityEngine.Screen.brightness와 동일한 에디터 내 동작을 하며 항상 1을 반환합니다. Device Simulator가 시뮬레이션하는 멤버에 대한 정보는 다음에 대한 API 문서를 참조하십시오.
UnityEngine.Device 네임스페이스에서 클래스를 사용하도록 기존 코드를 전환하려면 별칭 지시문을 사용하는 것이 가장 좋습니다. 예시:
using Screen = UnityEngine.Device.Screen;
using Application = UnityEngine.Device.Application;
using SystemInfo = UnityEngine.Device.SystemInfo;
이렇게 하면 전체 파일에서 사용하는 클래스를 변경할 수 있고 모든 API 호출을 변경하지 않을 수 있습니다.