设备模拟器提供模拟类,您可以使用它们来测试在设备模拟器中响应设备特定行为的代码。
以下模拟类位于 UnityEngine.Device 命名空间中
这些模拟类与其常规 UnityEngine 命名空间中的对应类具有相同的成员。您可以在代码库中的任何位置使用它们,就像您通常使用常规类一样。这不会产生性能影响,您可以在发布版本中使用它们。
在编辑器中,当设备模拟器处于活动状态时,模拟类会模仿模拟设备的特定于平台的行为;例如,Device.SystemInfo.operatingSystem 返回模拟设备的 Android 或 iOS 版本。
在构建的应用程序中,或当设备模拟器未处于活动状态时,模拟类与 UnityEngine 命名空间中的对应类的行为相同。
尽管模拟类与常规类具有相同的成员,但设备模拟器并非模拟所有行为。在 UnityEditor 中,设备模拟器未模拟的成员与它们的 UnityEngine 等效项的行为相同,后者不依赖于平台。例如,设备模拟器不模拟Device.Screen.brightness。这意味着此成员在编辑器中的行为与UnityEngine.Screen.brightness相同,后者始终返回1
。有关设备模拟器模拟哪些成员的信息,请参阅以下内容的 API 文档:
如果要将现有代码转换为使用 UnityEngine.Device 命名空间中的类,最佳实践是使用别名指令。例如
using Screen = UnityEngine.Device.Screen;
using Application = UnityEngine.Device.Application;
using SystemInfo = UnityEngine.Device.SystemInfo;
这样,您可以更改整个文件使用的类,而无需更改每个 API 调用。