Unity Editor Console Pro 扩展点击定位到外部工程

链接

http://blog.csdn.net/akof1314/article/details/53232981

http://forum.china.unity3d.com/thread-26890-1-1.html

 

原因

以 C# 源码形式放在 Unity 工程中,那么打印日志的时候,双击 Console 窗口里面的日志行信息,就会自动定位到 Visual Studio 所在的文件和行数。

但是,以 DLL 形式放在 Unity 工程的话,就无法快速定位打开所在的文件和行数。

解决

借助第三方插件 Editor Console Pro,扩展它的功能,判断双击日志行信息的时候,当文件处于非 Unity 工程中的话,则打开外部工程来定位。

扩展配置界面:

C# 文件

外部 C# DLL 工程,使用 Visual Studio 打开,需要安装过Microsoft Visual Studio Tools for Unity,才能发送定位文件消息。

自 Unity 5.2 开始,已经集成了这个插件,那么只要反射 Unity 所加载的SyntaxTree.VisualStudio.Unity.Bridge.dll,发送定位文件消息即可。

但是,首先得对代码工程*.csproj文件,添加一条配置项:

<ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
  • 1

添加在第一个<PropertyGroup>节点之下。这样才能使得VSTU可以通过UDP发送消息命令。

要注意的一点,加上这个配置项,可能导致工程项目的属性窗口无法打开。

使用的时候,在配置界面,配置外部 DLL 工程解决方案的路径。那么在 Console Pro 3 窗口里双击日志行信息的时候,就会自动打开定位到外部 DLL 工程。

Lua 文件

嵌入 Lua 工程,在 Lua 脚本中打印日志,日志格式为:

15:7:2.333-0: [F:/Svn/Resource/Assets/Lua/tolua.lua:10]:msginfo
  • 1

那么可以通过设置,来指定双击日志行信息的时候,用 ZeroBrane Studio 打开文件,或者用 Sublime Text 打开文件。

忽略自定义日志类

日志包装类封装了Debug.Log,打印日志的时候,在堆栈最顶层都是日志包装类信息,不方便定位到上层调用的位置。

插件Editor Console Pro支持配置忽略自定义日志类在堆栈上显示。在配置界面,Ignore 页面里,添加一条 Ignore stack entries 记录,类名填入包装类名称即可,如下所示:

应用之后,再看日志,便可一眼清晰,如下所示:

下载

 

[原创] 重新定义Unity编辑器控制台:Editor Console Pro 

[复制链接]
   

845

主题

1484

帖子

1万

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
19165
QQ
跳转到指定楼层
楼主
 
 发表于 2017-8-31 08:05:00 只看该作者 |只看大图 回帖奖励
我想有个控制台,可以按照自己的需求来自定义显示各种类型的输出信息,从而更好的了解自己游戏的运行情况。移动开发工具包中的Editor Console Pro就可以满足这一需求。今天Unity平台部技术总监杨栋,就为大家详细介绍Editor Console Pro是如何帮助大家节省项目调试时间,提高开发效率的。另外,现在订阅Unity Plus加强版及Unity Pro专业版即可免费获取Unity为开发者们精心挑选的四选一开发工具包,移动开发、2D开发、VR开发及艺术设计。

Editor Console Pro简介

<ignore_js_op>


Unity内置的Console窗口(控制台)是一个重要的开发辅助工具,所有的Log和报错信息都会显示在这里。您也可以通过在代码中添加print()或者Debug.Log()方法调用直接输出信息到Console窗口。下图是在代码出错的时候大家通常会看到的报错信息:

<ignore_js_op>


点击错误信息会打开代码编辑器,并在编辑器中高亮显示出错的代码片段。虽然Unity自带的控制台已经可以满足一些常用需求,但结合一些高级功能会更加有助于项目调试,例如直接在控制台显示代码所在位置并且高亮。

下图是同样的报错信息输出在Editor Console Pro窗口中的样子:

<ignore_js_op>


通过这个简单的示例,比较上面两张截图会发现,一个很重要的区别是:在Editor Console Pro中,出错的源代码会被直接显示在窗口中,一目了然,方便开发者直接定位出错的地方。

Editor Console Pro主要功能

关键字搜索:

如果控制台的信息不是太多,可以滚动鼠标滚轮来查看所有内容。然而一旦控制台如下图那样出现数十条信息,Unity自带的控制台就力不从心了,这时搜索功能显得很重要。Editor Console Pro提供强大的关键字搜索功能,可以轻松根据关键字查看对应的Log。

<ignore_js_op>



丰富的功能配置界面

您可以通过下图的Preferences菜单打开功能设置界面:

<ignore_js_op>


功能设置界面如下图:

<ignore_js_op>


可以在配置界面设定要追踪的Log信息,除了输出信息、警告、错误之外,还可以追踪异常、断言,并对某个特定的变量或方法进行监测。


强大的过滤显示功能

目前Unity自带的控制台支持通过Logs, Warnings和Errors三个条件进行过滤,Editor Console Pro支持创建自定义过滤组,并且可以设置每个组的颜色,图标和开关按钮。为自定义过滤组设置不同类型的搜索条件,如下图:

<ignore_js_op>


为自定义过滤组设置不同的Log类型,如下图:

 

创建三个自定义过滤组以后在界面上显示,如下图:

 


使用Remote Logging获取在设备上运行游戏的Log和 堆栈信息

按照以下步骤让发布的包支持Remote Logging功能:

a)    在场景中添加一个空的GameObject并添加ConsoleProRemoteServer组件;

b)    在构建窗口勾选对应平台的Development Build进行构建;

c)    确保您的设备和电脑连着同一个网络并且使用同一个子网掩码;

d)    打开Remote Logging:

<ignore_js_op>


e)    点击“Remote On”按钮激活远程模式,如果一切设置正确,您将会看到Console会开始接收Log:

<ignore_js_op>


结语

Editor Console Pro相较于Unity自带的Console,提供了更丰富的功能选项。开发者可以按照自己的需求来自定义显示各种类型的输出信息,从而更好的了解自己游戏的运行情况,进一步提高项目开发与调试效率。后面我们还会陆续为大家介绍VR开发及艺术设计工具包的相关内容在Unity官方中文社区(unitychina.cn),请保持关注。
posted @ 2017-10-19 15:24  三页菌  阅读(1502)  评论(0编辑  收藏  举报