咱们这里有3种调试方法,Unity Remote,Android Studio和第三方模拟器测试
(1)Android Studio:安装Google USB Driverui
(2)手机安装Unity Remote3d
安装Unity Remote后,能够将手机与PC用USB线链接,在Unity界面运行,并在手机上显示画面,这样能够不用打包就能测试大部分功能,可是缺点是不能测试所有功能,有一些仍是检测不到的。调试
(1)使用Unity Remote调试code
首先设置Unity中的Editor Settings,依次打开Edit > Project Settings > Editororm
打开手机,确保开发人员选项打开,而且在USB调试模式下,打开Unity Remote,而后启动Unity项目,手机上就会显示对象
(2)使用AVD + [Logcat] 调试(Android Virtual Device)blog
打开Android Studio,选择Tools > AVD Manager游戏
建立一个虚拟设备开发
这个根据须要选择型号
这一步注意,选择一个稳定的,存在的
建立好后以下
选择运行,就出现一个咱们建立好的虚拟设备
最后,在Unity中Build And Run,之前是Bulid,这里会建立好一个apk,而且在建立的时候unity会搜索链接的Android设备,并将apk安装上去。这个时候咱们的虚拟设备上就运行了这个包。
在虚拟设备运行的时候,能够在这里选择看到Android的打印显示
(3)使用真机 + [Logcat] 调试
和第2种方法不同的事,这里不适用虚拟设备,直接使用咱们的手机来调试。手机用数据线和电脑链接,和第2种方法同样的打包,可是这里会在咱们的手机上面安装一个包运行。一样能够在Android Studio中看到Logcat
(4)使用模拟器调试
安装模拟器,将打出的包安装上去,运行就好了。
移动端相关API:
using UnityEngine; using UnityEngine.UI; public class Test : MonoBehaviour { public Text infoText; string platform = string.Empty; string info = string.Empty; void Update() { info = string.Empty; //使用预编译的宏命令检测平台 //Editor模式下目标平台选Android也会触发UNITY_ANDROID的宏 #if UNITY_ANDROID platform = "UNITY_ANDROID"; #elif UNITY_EDITOR platform = "UNITY_EDITOR"; #endif Debug.Log("platform : " + platform); info += "platform : " + platform + "\n"; //使用Application.platform检测平台 Debug.Log("platform : " + Application.platform); info += "platform : " + Application.platform + "\n"; //获取当前设备分辨率 Debug.Log("currentResolution : " + Screen.currentResolution); info += "currentResolution : " + Screen.currentResolution + "\n"; //获取当前DPI Debug.Log("dpi : " + Screen.dpi); info += "dpi : " + Screen.dpi + "\n"; //获取是否全屏 Debug.Log("fullScreen : " + Screen.fullScreen); info += "fullScreen : " + Screen.fullScreen + "\n"; //获取游戏窗口的宽高 Debug.Log("height : " + Screen.height); info += "height : " + Screen.height + "\n"; Debug.Log("width : " + Screen.width); info += "width : " + Screen.width + "\n"; //获取屏幕方向 Debug.Log("orientation : " + Screen.orientation); info += "orientation : " + Screen.orientation + "\n"; //获取屏幕超时时间(仅在移动端有效) Debug.Log("sleepTimeout : " + Screen.sleepTimeout); info += "sleepTimeout : " + Screen.sleepTimeout + "\n"; //任意键按下 Debug.Log("anyKey : " + Input.anyKey); info += "anyKey : " + Input.anyKey + "\n"; //获取最后一次加速度计报告的加速度 Debug.Log("acceleration : " + Input.acceleration); info += "acceleration : " + Input.acceleration + "\n"; //获取本帧加速度计报告的次数 Debug.Log("accelerationEventCount : " + Input.accelerationEventCount); info += "accelerationEventCount : " + Input.accelerationEventCount + "\n"; //获取本帧加速度计的全部报告信息 for (int i = 0; i < Input.accelerationEvents.Length; i++) { Debug.Log("accelerationEvents" + i + " : " + Input.accelerationEvents[i].acceleration + " , " + Input.accelerationEvents[i].deltaTime); info += "accelerationEvents" + i + " : " + Input.accelerationEvents[i].acceleration + " , " + Input.accelerationEvents[i].deltaTime + "\n"; } //获取电子罗盘向量 Debug.Log("compass : " + Input.compass.rawVector); info += "compass : " + Input.compass.rawVector + "\n"; //获取设备方向 Debug.Log("deviceOrientation : " + Input.deviceOrientation); info += "deviceOrientation : " + Input.deviceOrientation + "\n"; //获取陀螺仪重力 Debug.Log("gyro : " + Input.gyro.gravity); info += "gyro : " + Input.gyro.gravity + "\n"; //获取位置服务状态 Debug.Log("location : " + Input.location.status); info += "location : " + Input.location.status + "\n"; //获取设备是否带有鼠标 Debug.Log("mousePresent : " + Input.mousePresent); info += "mousePresent : " + Input.mousePresent + "\n"; //获取平台是否支持多点触控 Debug.Log("multiTouchEnabled : " + Input.multiTouchEnabled); info += "multiTouchEnabled : " + Input.multiTouchEnabled + "\n"; //获取是否支持笔触(可检测压感、触摸夹角等) Debug.Log("stylusTouchSupported : " + Input.stylusTouchSupported); info += "stylusTouchSupported : " + Input.stylusTouchSupported + "\n"; //获取是否支持压感 Debug.Log("touchPressureSupported : " + Input.touchPressureSupported); info += "touchPressureSupported : " + Input.touchPressureSupported + "\n"; //获取是否支持触摸 Debug.Log("touchSupported : " + Input.touchSupported); info += "touchSupported : " + Input.touchSupported + "\n"; if (Input.touchCount > 0) { //当前帧的触摸数 Debug.Log("touchCount : " + Input.touchCount); info += "touchCount : " + Input.touchCount + "\n"; for (int i = 0; i < Input.touchCount; i++) { //获取当前Touch对象的一系列属性 Debug.Log("touch" + i + "altitudeAngle : " + Input.GetTouch(i).altitudeAngle); info += "touch" + i + "altitudeAngle : " + Input.GetTouch(i).altitudeAngle + "\n"; Debug.Log("touch" + i + "azimuthAngle : " + Input.GetTouch(i).azimuthAngle); info += "touch" + i + "azimuthAngle : " + Input.GetTouch(i).azimuthAngle + "\n"; Debug.Log("touch" + i + "deltaPosition : " + Input.GetTouch(i).deltaPosition); info += "touch" + i + "deltaPosition : " + Input.GetTouch(i).deltaPosition + "\n"; Debug.Log("touch" + i + "deltaTime : " + Input.GetTouch(i).deltaTime); info += "touch" + i + "deltaTime : " + Input.GetTouch(i).deltaTime + "\n"; Debug.Log("touch" + i + "fingerId : " + Input.GetTouch(i).fingerId); info += "touch" + i + "fingerId : " + Input.GetTouch(i).fingerId + "\n"; Debug.Log("touch" + i + "maximumPossiblePressure : " + Input.GetTouch(i).maximumPossiblePressure); info += "touch" + i + "maximumPossiblePressure : " + Input.GetTouch(i).maximumPossiblePressure + "\n"; Debug.Log("touch" + i + "phase : " + Input.GetTouch(i).phase); info += "touch" + i + "phase : " + Input.GetTouch(i).phase + "\n"; Debug.Log("touch" + i + "position : " + Input.GetTouch(i).position); info += "touch" + i + "position : " + Input.GetTouch(i).position + "\n"; Debug.Log("touch" + i + "pressure : " + Input.GetTouch(i).pressure); info += "touch" + i + "pressure : " + Input.GetTouch(i).pressure + "\n"; Debug.Log("touch" + i + "radius : " + Input.GetTouch(i).radius); info += "touch" + i + "radius : " + Input.GetTouch(i).radius + "\n"; Debug.Log("touch" + i + "radiusVariance : " + Input.GetTouch(i).radiusVariance); info += "touch" + i + "radiusVariance : " + Input.GetTouch(i).radiusVariance + "\n"; Debug.Log("touch" + i + "rawPosition : " + Input.GetTouch(i).rawPosition); info += "touch" + i + "rawPosition : " + Input.GetTouch(i).rawPosition + "\n"; Debug.Log("touch" + i + "tapCount : " + Input.GetTouch(i).tapCount); info += "touch" + i + "tapCount : " + Input.GetTouch(i).tapCount + "\n"; Debug.Log("touch" + i + "type : " + Input.GetTouch(i).type); info += "touch" + i + "type : " + Input.GetTouch(i).type + "\n"; } } infoText.text = info; } }