链接

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文件,添加一条配置项:

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

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

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

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

Lua 文件

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

  1. 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. HTML5 Canvas核心技术图形动画与游戏开发 ((美)David Geary) 中文PDF扫描版​

    <html5 canvas核心技术:图形.动画与游戏开发>是html5 canvas领域的标杆之作,也是迄今为止该领域内容最为全面和深入的著作之一,是公认的权威经典.amazon五星级超级 ...

  2. 我用Django搭网站(3)-表单RSA加密

    之前开发项目时因为种种原因一直使用明文提交,表单直接明文提交非常不安全,只要稍加操作就能轻易获取用户的信息.在众里寻他千百度之后决定使用RSA加密方式,简单可靠. 项目准备 一.安装PyCrypto库 ...

  3. jQuery之方法绑定(事件注册)代码小结

    1.最直接的模式,直接将一个function对象传入方法函数,如下面的click(),好处坏处一看便知 $("#btnComfirmChooseCompany").click(fu ...

  4. 协程《三》gevent模块

    一 gevent模块 安装 pip3 install gevent Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它 ...

  5. scrapy中通过set()方法进行数据过滤去重

    我们经常在抓取数据是碰到 数据重复的问题,除了radis数据库去重功能外,还有一种简便的过滤方法, 来来 我们直接上代码: pipelines.py中: from scrapy.exceptions ...

  6. 【python】Python任务调度模块 – APScheduler

    APScheduler是一个Python定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.并以daemon方式运行应用.目前最新版本为3.0 ...

  7. Java面向对象之内部类(匿名内部类)

    一.基础概念 匿名内部类:简化书写的内部类.其实匿名内部类就是一个子类对象. 前提:内部类需要继承或者实现外部的类或者接口. 格式:new 父类或者接口(){定义子类的内容} 二.将内部类定义到局部的 ...

  8. 微信开发——测试号申请,接口配置,JS接口安全域名,自定义菜单

    1.申请测试账号: 先申请公众号后,点击进入公从号的管理页面:找到“开发者工具”,找到“公众平台测试账号”,点击“进入”. 2.接口配置信息设置 必须要外网哦,也就是微信服务器要能访问到你填写到url ...

  9. Jenkins项目部署使用教程-----03节点添加

    1)添加节点 系统管理——>管理节点——>新建节点 进入配置界面 点ok进入配置界面配置,——>高级 点击save保存,进入节点,点击Launch agent使得jenkins服务器 ...

  10. VS2013过期激活

    然后点击"更改我的产品许可证",输入密钥  : BWG7X-J98B3-W34RT-33B3R-JVYW9 即可注册成功...