ima*_*_sh 2 c# virtual android emulation unity-game-engine
有没有办法知道游戏是在模拟器应用程序或真实设备中运行的?
一些应用程序,如VirtualXposedAndroid设备的虚拟模拟器.此类应用程序允许用户在其设备上多次安装具有不同标识的游戏/应用程序.
我想知道有没有办法识别我的游戏/应用程序在Unity3d中的模拟器或物理设备中运行?
就像是 :
if(isemulator)
{
dosomething();
}
Run Code Online (Sandbox Code Playgroud)
这很不容易,因为那里有很多仿真器.这篇文章的答案说你可以用Build.FINGERPRINT.contains("generic")它来做.
您可以使用类将Java代码移植到Unity中的C#,AndroidJavaClass而无需构建Java插件.以下是C#中的移植版本:
public bool IsEmulator()
{
AndroidJavaClass osBuild;
osBuild = new AndroidJavaClass("android.os.Build");
string fingerPrint = osBuild.GetStatic<string>("FINGERPRINT");
return fingerPrint.Contains("generic");
}
Run Code Online (Sandbox Code Playgroud)
要确保这涵盖大多数模拟器,请使用android-emulator-detector插件.这个插件似乎经过了严格的测试,可以检测到大多数模拟器.您可以使用AndroidJavaClass它与它进行通信并使用UnityPlayer.UnitySendMessageC#回调Unity代码.
| 归档时间: |
|
| 查看次数: |
2211 次 |
| 最近记录: |