链接

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万

贡献

管理员

积分
19165

电梯直达

楼主

 
 发表于 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),请保持关注。

Unity Editor Console Pro 扩展点击定位到外部工程的更多相关文章

  1. Unity Editor Toolbar 编辑器扩展

    http://www.cnblogs.com/zhaoqingqing/p/3812368.html 1.Apply to Prefab [把改动应用到Prefab] if (GUILayout.Bu ...

  2. unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5

    unity手机游戏应用程序调试控制台Lunar Mobile Console - PRO 1.5.5 High-performance Unity iOS/Android console built ...

  3. Unity Editor 下创建Lua和Text文件

    预览 在Project视图中,扩展右键菜单,右键 – Create - Text File 创建一个Text文件,或者Lua文件. 关键点 获取当前选择的路径,以Assets路径开头 var sele ...

  4. 在使用element-ui搭建的表格中,实现点击"定位"按钮后,屏幕滚动到对应行的位置

    背景: 一个后台管理系统,当管理员登录之后,会存在一个自己的id值, 在一个表格中,当点击"定位"按钮后,屏幕滚动到拥有管理员id的这一行,并且给设置一个高亮的背景 相关知识点: ...

  5. cesium加载gltf模型点击以及列表点击定位弹窗

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 之 ...

  6. Spine用于Timeline(NullReferenceException: Object reference not set to an instance of an object pine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI ())

    报错信息:Spine.Unity.Editor.AnimationReferenceAssetEditor.OnInspectorGUI () (at Assets/Extention/Spine/E ...

  7. Android编程 高德地图 中如何重写 定位按键 的触发事件 (com.amap.api.maps2d.LocationSource)点击定位后不仅定位在地图中心点上而且可以设置地图的缩放大小和提示

    在利用高德地图来编写自己的APP的时候,发现了一种对定位按键的重写方法,那就是利用   com.amap.api.maps2d.LocationSource  接口来重写. 什么是定位按键呢,下图中右 ...

  8. Unity Editor已停止工作

    在更换系统之后,可能会出现打开刚安装好的Unity,显示Unity Editor已停止工作,这时候我们考虑是系统win7的问题.可以在原系统上升级,也可以重新安装,升级.文中所涉及到的软件,可在右侧加 ...

  9. 小程序点击跳转外部链接 微信小程序提示:不支持打开非业务域名怎么办 使用web-view 配置业务域名

    小程序点击跳转外部页面 1.index.wxml  添加点击事件   标签可以是小程序支持的 <!-- 邀请好友 --> <cover-image src='/img/invitat ...

随机推荐

  1. 搭建自己的git服务器--gogs

    //@desn:搭建自己的git服务器--gogs //@desn:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> //@date:201 ...

  2. C#截取验证码图片

    使用Graphics类中的DrawImage方法,这个方法有30种重载方式,这里只介绍一种,也是我认为最直观的一种,代码如下: using System.Drawing; namespace kq.U ...

  3. 【SQL】- 基础知识梳理(五) - 触发器

    触发器的概念 触发器对表进行插入.更新.删除的时候会自动执行的特殊存储过程 触发器的语法 create trigger tgr_name on table_name with encrypion –加 ...

  4. .Net Core 项目引用本地类库方式(二)

    上篇文章有详细的介绍.Net Core 项目中引用本地类库通过打包,然后Nugety引用方式,这里再介绍一种引用包的方式

  5. javascript前端导出csv表格

    使用场景 后台统计经常要展示各种各样的表格数据,几乎每个表格展示都会伴随着数据的导出. 之前的解决方案都是通过发起一个相同查询参数(querystring)的导出请求(action=export),由 ...

  6. [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode

    1.二叉树的特点: (1).每个节点最多有两个子树(2).左子树和右子树是有顺序的,次序不能颠倒(3).即使某节点只有一个子树,也要区分左右子树 2.二叉查找树(Binary Search Tree) ...

  7. delphi 给字符指针分配内存

    今天,对接第三方dll的时候出现如下问题: 接口声明如下: long BL_tradeBalance (char *MerchantNumber,char *PosId,char *OperatorN ...

  8. Servlet的概念与用法

    Servlet: Servlet(Servlet+Applet) Servlet是一种独立于平台和协议的服务器端Java应用程序,通用Servlet      可以生成动态Web页面.Servlet还 ...

  9. Fundamentals of Logic

    Fundamentals of Logic To make complicated mathematical relationships clear,it is convenient to use t ...

  10. 品味ZooKeeper之Watcher机制_2

    品味ZooKeeper之Watcher机制 本文思维导图如下: 前言 Watcher机制是zookeeper最重要三大特性数据节点Znode+Watcher机制+ACL权限控制中的其中一个,它是zk很 ...