在使用 Unity 开发 Android 的过程中,可以通过使用 Unity Remote 这个 app 来和真机连接,进而在真实环境下进行测试性能等工作,而本次则是由于其他问题引出的一个小坑,记录以备后续查询。
这次是由于在自学过程中遇到的一个工程,虽然是面向安卓开发的,问题是在 Unity 的 Game 界面无法进行局内的点击操作,经过查看,其内部代码使用了 Input.touches
来获取点击信息,这个接口貌似只在移动端才有效,所以在 Unity 自带的 Game 界面无法进行游戏操控。虽然也可以自己改代码解决,但是也想着之前没用模拟器连接过 Unity 所以特此尝试。
第一步:给模拟器安装 Unity Remote 5
第二步:开启模拟器的开发者模式
第三步:对 Unity 进行设置
第四步:通过 adb 命令连接模拟器
而这里就出现了本次的坑,查了将近半个下午才恍然大悟。
在进行到第四步的时候,通常情况下使用一下命令就可以顺利连接安卓设备。
adb connect 127.0.0.1:7555
此处的 7555
是 MuMu模拟器
端口号。
其他一些模拟器的端口号如下:
夜神模拟器:62001
MuMu模拟器:7555
天天模拟器:6555
当然了,如果是连接真机就只需要插上根线就行了,不过这里是连接模拟器,所以要一些额外的操作。
如果是真机的话,插上线,打开 Unity Remote 5 之后点击 Unity 的 Play 就可以看到手机屏幕上投影了 Unity 中的画面,但是按照上面的做法后,模拟器里面毫无反应。
之后查来查去,也都没有效果,而且也没有什么说明。
后来看到一篇文章后我灵光一闪,可能是 adb 的问题,于是经过测试果然如此。
原因在于,我的电脑中由于已经配置过 adb 的路径,所以在 cmd 中使用的 adb 是 Android Studio 下面的。而完整下载的 Unity 是自带一个 adb 的,例如我使用的 2019.4.40 版本的 adb 位置就是:
2019.4.40f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\platform-tools
需要通过 cmd 进入该目录后,使用这个 adb 去连接模拟器,这样就可以正常的用 Unity 连接到模拟器中的 Unity Remote 5 了。