使用Remote连调Unity3D和移动端

前言

移动端测试的时候,打包、安装等一系列工作很耗时,导致效率低下,而且移动端打包测试的log信息也不好读取。
使用Remote可以在手机上操作、测试软件,特别是可以用来测试Touch、Accelerometer、Gyroscope、Device camera streams、Compass、GPS等,而且可以在客户端PC上查看相关log信息。

使用方法

1:移动设备安装相应的软件

对安卓,官方推荐googlePlay下载Remote。
对iOS,官方推荐asset store下载Remote软件。
本文以安卓为例说明,可以通过91助手搜索Remote,下载安装(尼玛最新版本都才13年的)
(补充:20150928,可以unity store上搜索Remote,使用Unity封装好的插件,发布到对应的移动平台,这个也是替代原来的Remote软件的。
Unity Remote4
)

2:PC端

2.1:转换到对应的平台
2.2:设置Remote的对应平台
Edit->Project Settings->Editor
打开后如下,第一个图为4.5.2f1的界面,第二个为5.1.1f1的界面,选择对应的设备。
设置Remote联调的设备 4.5.2f1

设置Remote联调的设备 5.1.1f1

上述搞定后,把移动设备和电脑用USB连接,先启动移动端的Remote软件,然后ctrl+p运行UnityEditor的程序。

注意事项

1:Remote无响应
运行UnityEditor程序后,Remote软件没有显示Game界面的视图。
解决方法:
分别关闭Remote和UnityEditor程序,重新来,注意一定是两个都重启,且重启后先开Remote,再开Unity。
PC上关闭*adb进程
关闭GPRS、WIFI(备注,个人测试在打开WIFI情况下可以连接,由于测试机无卡,因此没有测试GPRS的影响)

2:糟糕的画质
使用Remote后,事实上游戏是运行在Unity editor上的,只是画面内容会通过流的形式传到设备上,由于带宽的限制,因此对数据流会大量压缩,造成画质效果差。
如上述图所示,在5.0+Remote可以选择压缩(compression)方式为png,这样便可以无损传输图像,但会占用比JPEG更多的带宽。
Resolution默认为normal,可以选择Downsize,这样可以使得图像需要低一点的带宽,从而在图像的清晰和帧率之间达到一个平衡。
3:部分API不支持
如在移动设备或者客户端上Input.GetAxis(“Mouse X/Y”)都是可以获得值的,但是在Remote上始终为0(4.6.3的结果),可以用Input.GetTouch(0).deltaPosition代替,该API在移动设备和Remote上都有效~

参考文档

官方介绍Unity Remote4:http://docs.unity3d.com/Manual/UnityRemote4.html/