用Unity Remote进行手机测试

来源:互联网 发布:淘宝举报盗图原图太大 编辑:程序博客网 时间:2024/06/07 00:16

前言

上周忙着考试月,辛苦的大三狗终于结束了大学生涯的最后一门必修,可喜可贺,可喜可贺。于是迎来了久违的Unity博客,反正也没人催更,日常熄火什么的不是很正常。

如何快捷地使用手机测试Unity游戏?

以前我都是直接生成apk再安装到手机上测试,真的是麻烦的不行。后来查了一下官方文档,没想到Unity居然真的“有过”一个用来快捷进行手机测试的方法,叫做Unity Remote。Unity Remote是安装在移动端的一个应用程序,支持Android和iOS平台。用法也还算简单,直接把手机连接到电脑上,然后打开Unity Remote就可以直接在手机上获取到游戏画面,当然,肯定是会有延迟的,由于平台的不同帧数也会有变化。不过重点在于Unity还可以从手机上获取到陀螺仪,加速器和多点触控等参数,所以比起直接打包成apk安装测试还是要方便一点。
然而,比较无语的是Unity Remote在Android平台上下载要安装Google Play,相信大部分国产手机应该都不支持Google Play,所以这条路基本行不通(会刷机和Root的科技宅还是可以试试的)。

Google Play 上下载Unity Remote 5

另外就是Unity官方还提供了一个Unity Remote的Package,可以直接用Unity Bulid之后发布到移动平台上运行。然而这个东西上次更新还是Unity Remote 4,现在Unity都出到5了,所以真的不敢保证到底多好用,我之前自己安装过一次,接下来就大概演示一下这个东西怎么使用。
Asset Store 上可以下载Unity Remote 4

使用步骤

  1. 下载和导入。下载的话直接去Unity官方的Asset Store搜索就可以了,需要登录Unity账号。不熟悉的用户可以参考下面的图片。导入后得到的就是Unity Remote需要的全部资源文件。不出意外的话,你可能会出错,因为Unity Remote的版本太老了,当时使用的一些命名空间现在都变了,所以需要手动改一下。在所有Profiler找不到的文件里加上using UnityEngine.Profiling;即可解决。
    这里写图片描述

  2. 发布和安装。发布的话要打开File-Build Settings,并且根据移动端的类型切换为Android或iOS。因为我的手机是Android的,所以我就直接打包成apk安装。点击Bulid会让你选择安装apk的生成路径,然后等待apk生成之后就可以安装到自己的手机上啦。
    发布和安装

  3. 连接并进行初始化。如果你成功安装Unity Remote到你的手机上了,接下来就是要测试能否正常地进行联机调试了,毕竟这才是我们的最终目的。在手机上打开Unity Remote,你应该看到下面的界面。

Unity Remote手机页面展示

就像上面给的提示所说,我们下一步要做的就是

  Connect this device with a USB Cable to your computer. Press PLAY in the Unity Editor to test.  用USB线将设备和电脑连接起来,然后按下PLAY按钮进行测试。

当然在第一次使用时,我们可能还需要选择我们准备使用设备的类型。按照它给定的路径Edit > Project Setting > Editor我们就可以选择我们使用的设备类型等相关设置。
初始化设置
图中所示几个选项的作用可以参考下表:

参数名 可选项 描述 Device (None, Any Android Device) 用于用于测试的手机类型(不知为何没有iOS…) Compression (JPEG, PNG) 手机上看到的图像其实是电脑上每一帧压缩后发送到手机上的,JPEG的画质低但性能略高,PNG画质高但性能相对较差 Resolution (Normal, Downsize) 和上面选项的作用类似,如果你想让测试过程更流畅,可以选择Downsize降低分辨率 Joystick Source (Remote, Local) 选择控制来源,Remote就是从手机上接受控制,Local就是直接在电脑上控制。

按照实际情况调整相关设置之后,不出意外你应该就可以在手机上看到Unity的Scene中的画面了。
4. 能同步看到Unity的场景了,接下来我们就要试试看能不能成功进行控制了。方便起见,我自己写了一个脚本用来测试手机的重力感应。
脚本内容如下

    using UnityEngine;    using System.Collections;    public class AccelerometerInput : MonoBehaviour    {        void Update ()        {            transform.Translate(Input.acceleration.x, 0, -Input.acceleration.z);        }    }

简单地说,就是当手机发生倾斜时,脚本绑定的物体也会发生相应的移动。我们把AccelerometerInput.cs绑定到某个GameObject上,然后通过Unity Remote 4 进行控制,可以发现效果还不错。

总结

这次主要描述了如何使用Unity Remote帮助我们方便地进行调试,如果有什么没有疏漏,请参考Unity官方文档:Unity Remote。当然,为了更好的理解如何使用移动设备的输入参数,你可能还需要学习一下Input类的相关知识。

原创粉丝点击