2018-03-20 00:49:43 menghuangxiao 阅读数 612
我在知乎上看到过一篇文章关于这方面的文章,原文作者说禁止转载,尊重作者,我就不贴出来了。我觉得没必要,毕竟官网上都有这个教程。
 在Unity官网上Android真机断点调试Unity3d真机调试发布的Android程序办法
    在说下实际调试的时候遇到的坑,
(1)电脑和android机需在同一个网段,例如192.168.1.2,192.168.1.3

(2)目前本人只在MonoDevelop上调试过,VS暂时没试过。

(3)360wifi就是个坑,电脑和android机居然不再一段网段。



2015-10-29 16:25:59 jscese 阅读数 17882

习惯android 开发的同仁 必然熟悉eclipse的DDMS 以及run debug ,调试手法丰富,对于unity IDE 也就类似一个 eclipse上的app的发布调试,网上搜了一圈,没有为android开发者做的一些使用总结,这里记录一下

撰写不易,转载需注明出处:http://blog.csdn.net/jscese/article/details/49489419本文来自 【jscese】的博客!


build&setting&run

前提是已经有了android的基础开发环境,所谓的 JDK SDK ADT不在描述,设置unity 编辑器的首选项配置SDK路径:
这里写图片描述
配置默认编辑工具以及SDK路径如红框,脚本代码查看调试工具默认是monodevelop ,可以自己更改,但是要attach unity process 来调试 就需要另行配置了,这里不概述

配置编译为android apk的选项配置:
这里写图片描述

这样配置好以后,adb连接android device,直接Ctrl+B ,就会编译打包scene 生成发布的apk ,push到device上运行


logcat

script中添加打印方式:

Debug.Log ("test");

至于运行在我们android设备上unity apk ,串口也好adb也行,加个过滤

logcat -s Unity

monodevelop 断点调试

在一个工程代码中,打开monodevelop:
这里写图片描述

在打开的monodevelop 编辑界面中,可以进行对应代码的编写 修改,切换回unity editor 时 就会编译,如有错误可以在 console 中的 error项下 review

pc_unity-attach

在monodevelop中直接attach 运行的unity process 如下图:
这里写图片描述
run 菜单下的选项,简要明了,连接好了之后 ,设立断点,目标机器上点击运行,跳过 跳进 跳出函数 ~

android_devices-attach

前面build&setting&run中有提到 build setting 窗口中有几项是后续调试可以enable的,默认设置false,没有勾选的
此时就要勾选 Development Build 以及 Script Debugging 两项

之前一直以为连上usb 调试,adb connect状态下,可以实现attach,实则不然! 发现只能通过wifi
这个里面有人提问:MonoDevelop Debugging of Android Player: How to Attach to Process of Android Device/Application

下面有人给出的解答:

I contacted Unity Technical Support. Apparently, Unity Script Debugging on Android with MonoDevelop is only supported via WiFi. It is not possible via USB Cable.

1:Open TCPIP port for ADB WiFi serving
adb tcpip 55555
2. Connect to Android device via WiFi
adb connect
3. Android device should then appear: - Unity Profiler -> Active Profiler as AndroidPlayer - MonoDevelop -> Attach to Process as AndroidPlayer

unity 官方attach方法
Attaching MonoDevelop Debugger To An Android Device

adb connect xxx 必须要在同一网段的局域网,我的PC是公司有线,设备只能连一个wifi ,搞不了


性能profiler

这个功能是属于专业版功能,比较有用,同样 在 build setting 窗口中 使能 Autoconnect Profiler ,或者在 Window 选项下打开peofiler,通过前面描述的 Ctrl +B push 运行到真机,查看性能图:
这里写图片描述
实时的显示每一个操作的函数调用以及时效

先记录这么多~

2016-12-05 16:17:04 swj524152416 阅读数 12168
U3D中的Profile也是可以直接在链接安卓设备运行游戏下查看的,导出真机链接U3D的Profile看数据,这样能更好的测试具体原因。
大概看了下官方的做法,看了几张帖子顺带把做法记录下来。
参考:http://docs.unity3d.com/Documentation/Manual/Profiler.html
用安卓真机调测Profile的数据,其实就两种方法,WIFI和ADB的方式。其实一般用的都是ADB方式,因为很少情况是你的电脑与手机是在同一子网WIFI下的。除非是你个人的网络。
备注:
如果你需要导出的游戏在非导出的机子上PROFILE的话,最好在导出的机子随便先导个带PROFILE的空项目。这样才能很容易链接上,不然是很麻烦的事情。
1.以WIFI的方式。
这个方法需要电脑所在的网络和手机所在的网络在同一子网下才能进行。
(1)导出U3D项目的时候勾选Profile,安装游戏到手机。
(2)打开游戏的时候,同时打开window->profiler,然后选择选择输入IP,连上即可。

X

2.以ADB的方式。
注意防火墙是否屏蔽掉了54998~55511端口,若屏蔽就打开。
(1)导出U3D项目的时候勾选Profile,安装游戏到手机。
(2)打开CMD命令行,cd到adb根目录,然后输入以下命令。将下面'这里加你的包名'改为你游戏打包出来的名,即Bundle Identifier。例如:com.Company.aaa。
adb forward tcp:54999 localabstract:Unity-这里加你的包名
(3)打开游戏的时候,同时打开window->profiler,然后选择选择AndroidProfiler(ADB@127.0.0.1:54999),连上即可。

 





Android

1  使用unityRemote调试(这种没用,只是在手机看到画面而已)

手机安装unityRemote并运行,unity中设置【edit】→【Perferences】,在External Tools中,设置Android SDK Location,连接usb后直接运行unity在手机上就能看到结果。

这种方法问题是使用这个unityRemote运行的结果和打包出来的apk运行结果未必一致,

不清楚使用profiler查看的是否是真机的参数

但是可以使用代码输出调试

[csharp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. if (Input.GetKeyUp(KeyCode.Escape))   
  2. {      
  3.        Debug.Log("Return Button");            
  4. }  

2 unity打包android apk

下载android sdk(unity版本和Android SDK Tools有一定对应关系,本文使用的是unity4.3.4  Android SDK Tools版本是22.0.1)

Edit->Perferences中设置android sdk位置


File->Build Settings,

然后在Inspector面板配置,首先更改下

再修改,最后可以新建个Keystore


然后可以点击build进行打包,打包时报错经常是因为unity版本和Android SDK Tools版本对不上,比如提示缺少zipalign.exe,aapt.exe等

解决方法是直接从\android-sdk-windows\build-tools\19.1.0\中把zipalign.exe,aapt.exe复制到android-sdk-windows\tools\中

其中zipalign.exe这个文件只有build-tools 19.1.0以上的版本中才有

aapt.exe这个基本大多数版本的build-tools 都有


3 使用profiler查看真机运行参数

 关闭手机数据(2g网)

 打开wifi(手机和unity所在pc在同一子网)

 首先使用unity打包apk,打包时需要勾选

 然后build and run,运行成功手机直接显示游戏画面,profiler自动弹出并显示手机运行apk的真实参数

 如果 Unity 编辑器 (Editor) 自动连接设备失败,从分析器窗口 (Profiler Window) 的活动分析器 (Active Profiler) 下拉菜单中选择正确的设备

 

android设备通过usb连接(正确安装驱动后)profiler中会多出两个选项

官网原文  http://uec.Unity3D.com/learning/document?file=/Manual/Profiler.html



IOS

使用profiler查看包参数的方法与android基本一直,但需要使用mac上的unity进行调试


2013-12-17 10:48:14 chenluwolf 阅读数 3194

开发一些整合型的手机应用比较有用!
目前貌似不支持断点调试,但可以通过日志打印(logcat)来跟踪。

在Android SDK中有个adb工具,使用此工具来跟踪运行的android应用:

adb logcat  

启动logcat,并将设备上运行的Android应用的运行时信息全部打印出来。

adb logcat -s Unity  

如果只想打印Unity的输出信息,使用此命令。

adb logcat -d > logcat.txt  

将打印信息输出为文件。 

当然,更直接的做法是在应用中集成自己的调试信息窗口,将如下代码关联到一个gameobject:

using UnityEngine;  

using System.Collections;</p><p>public class GuiTextDebug : MonoBehaviour   

{  

 private float windowPosition = -440.0f;  

 private int positionCheck = 2;  

 private static string windowText = "";  

 private Vector2 scrollViewVector = Vector2.zero;  

 private GUIStyle debugBoxStyle;  

   

 private float leftSide = 0.0f;  

 private float debugWidth = 420.0f;  

   

 public bool debugIsOn = false;  

   

 public static void debug(string newString)  

 {  

  windowText = newString + "\n" + windowText;  

  UnityEngine.Debug.Log(newString);  

 }  

    

 void Start()   

    {  

  debugBoxStyle = new GUIStyle();  

  debugBoxStyle.alignment = TextAnchor.UpperLeft;  

  leftSide = 120;  

 }  

    

   

 void OnGUI()   

    {  

  if (debugIsOn)   

        {  

   GUI.depth = 0;    

   GUI.BeginGroup(new Rect(windowPosition, 40.0f, leftSide, 200.0f));  

     

   scrollViewVector = GUI.BeginScrollView(new Rect (0, 0.0f, debugWidth, 200.0f),   

                                                   scrollViewVector,   

                                                   new Rect (0.0f, 0.0f, 400.0f, 2000.0f));  

   GUI.Box(new Rect(0, 0.0f, debugWidth - 20.0f, 2000.0f), windowText, debugBoxStyle);  

   GUI.EndScrollView();  

     

   GUI.EndGroup ();  

     

   if (GUI.Button(new Rect(leftSide, 0.0f,75.0f,40.0f), "调试"))  

            {  

    if (positionCheck == 1)  

                {  

     windowPosition = -440.0f;  

     positionCheck = 2;  

    }  

    else   

                {  

     windowPosition = leftSide;  

     positionCheck = 1;  

    }  

   }  

   if (GUI.Button(new Rect(leftSide + 80f,0.0f,75.0f,40.0f),"清除"))  

            {  

    windowText = "";  

   }  

  }  

 }  


http://blog.csdn.net/armoonwei/article/details/7032455

2016-03-13 18:11:30 u012741077 阅读数 4448

Unity Remote4支持Android与IOS(iPhone, iPad and iPod touch)设备的调试。
调试Android程序需要在Windows或OSX系统下使用USB连接设备。
调试IOS程序需要在OSX系统下使用USB连接设备。

调试时,Unity3D Game视图上的画面会推送到设备上,而设备中的以下数据则会返回到编辑器之中。

  • 触摸输入
  • 加速计
  • 陀螺仪
  • 摄像头
  • GPS

因为程序仍然是运行在编辑器上的,远端应用程序只是用于显示与接受输入信息,所以不能当成是完整的调试。

接下来讲解如何使用这中方法调试Android程序。

首先需要获取Unity Remote4,可以在Unity Asset Store中搜索下载,下载完成后导入一个新的空工程,如下图:
这里写图片描述

然后就可以生成Unity Remote4 程序了。
由于在导入资源包后,编辑器会添加一个Build菜单,则可使用其中的Build Android功能来生成Android程序。

生成后的文件在build目录下,名为:

UnityRemoteNG-Android.apk

至此,我们得到了调试客户端程序。

接下来是使用教程。

首先,调整Unity工程中的属性,依次打开菜单:

Edit->Project Settings->Editors

并做如下调整:
这里写图片描述

然后,将设备设置为开发者模式并允许USB调试,并将Unity Remote4安装到Android设备当中且将其打开,然后使用USB连接计算机。
程序打开后如下图:
这里写图片描述

最后就可以直接在Unity编辑器中运行程序了,Game视图中显示的图像会推送到设备当中,设备的输入则会返回到编辑器当中。

如果编辑器中运行后,设备中仍未显示的话,可以重新启动一下编辑器或重新连接一下设备,再或者使用Android SDK目录下的工具查看设备是否连接了,可使用以下命令查看:

adb devices

这里写图片描述

最后附上Unity资源包和打包好的andriod程序,见CSDN 下载:
Remote4_unitypackage_apk.zip:http://download.csdn.net/detail/u012741077/9460330
如有疑问,请留言。

这里写图片描述

Unity Android真机调试

阅读数 2696

没有更多推荐了,返回首页