链接

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. springcloud集成swaggerui做动态接口文档

    1.配置文件pom,一定要使用2.4以上的,2.4默认请求方式是json,会导致getmapping设置参数类型对对象时,swaggerui界面不能指定为其他类型,反正就是各种坑,不建议用 <d ...

  2. 【转】android中如何实现离线缓存

    原文地址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1209/2136.html 离线缓存就是在网络畅通的情况下将从服务器收 ...

  3. ajax 判断账户密码 调取数据模糊查询 时钟

    一.判断账户密码 <Login.html> <head> <meta http-equiv="Content-Type" content=" ...

  4. SQLServer如何在批量插入后,获取批量插入的自增列的值

    解决方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能获取所有插 ...

  5. Mongoid Relationships

    1:1 embedded relationship: M:1 linked relationship(one_direction): child uses belongs_to parent uses ...

  6. IIS发布ASP程序问题汇总

    看异常位置,因为域的问题

  7. Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02

    1.      Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求, ...

  8. Python3异常处理

    一. 简介 在编程过程中为了增加友好性,在程序出现Bug时一般不会直接将错误信息展示给用户,而是提供一个友好的输出提示. 二. 使用 1. 异常基础 常用结构: try: pass except Ex ...

  9. linux下蓝牙开发(bluez应用)

    编译blueZ-5.25 需要先编译安装以下包: bluez-libs-3.36.tar.gz expat-2.1.0.tar.gz dbus-1.10.0.tar.gz glib-2.26.1.ta ...

  10. struts2学习笔记(五)—— OGNL

    一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可 ...