【Unity3D】解决封装Debug后双击日志跳转位置不正确问题
测试环境:windows10 vs2017 unity2019.4.0f1
以GameFramework框架为例说明,在GF框架中我将.dll的源码拖到了工程里,导致跳转位置是封装代码行而并非真正我想跳转到的打印处。
解决方法:将日志部分代码重新打包成dll即可,具体操作如下列。
Load lua script 'LuaConfig.lua' OK.
UnityEngine.Debug:Log(Object)
UnityGameFramework.Runtime.DefaultLogHelper:Log(GameFrameworkLogLevel, Object) (at Assets/ThirdResources/UnityGameFramework/Scripts/Runtime/Utility/DefaultLogHelper.cs:32)
GameFramework.GameFrameworkLog:Info(String, Object) (at Assets/ThirdResources/GameFramework/Base/Log/GameFrameworkLog.cs:171)
UnityGameFramework.Runtime.Log:Info(String, Object) (at Assets/ThirdResources/UnityGameFramework/Scripts/Runtime/Utility/Log.cs:143)
StarForce.ProcedurePreload:OnLoadLuaScriptSuccess(Object, GameEventArgs) (at Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs:189)
GameFramework.EventPool`1:HandleEvent(Object, GameEventArgs) (at Assets/ThirdResources/GameFramework/Base/EventPool/EventPool.cs:264)
GameFramework.EventPool`1:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Base/EventPool/EventPool.cs:75)
GameFramework.Event.EventManager:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Event/EventManager.cs:68)
GameFramework.GameFrameworkEntry:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Base/GameFrameworkEntry.cs:29)
UnityGameFramework.Runtime.BaseComponent:Update() (at Assets/ThirdResources/UnityGameFramework/Scripts/Runtime/Base/BaseComponent.cs:227)
上述日志,想跳转到的地方是ProcedureProload.cs:189行,而不是DefaultLogHelper.cs:32行。为此我们要将下面的内容封装成dll来使用。
创建一个类库工程,拷贝如下几个文件到工程里生成DLL拷贝至Unity Plugins文件夹下。
UnityGameFramework/Scripts/Runtime/Utility/DefaultLogHelper.cs
Assets/ThirdResources/GameFramework/Base/Log/GameFrameworkLog.cs
UnityGameFramework/Scripts/Runtime/Utility/Log.cs
以及它们所依赖的GameFrameworkLog.ILogHelper.cs 和 GameFrameworkLogLevel。
一共5个文件,会有报错,但很轻松就能解决,生成dll后导入Unity Plugins里之前,我们要做的是把这5个在Unity的源文件都删除掉,不然会冲突。之后去到BaseComponentInspector.cs代码增加一行内容,对logHelperTypeNames 列表对象,添加 typeof(DefaultLogHelper).FullName 成员,接着去到Hierarchy面板 搜索Builtin名称物体(或搜t:BaseComponent)找到它身上的Base组件 修改它的Log Helper选中为我们的Log Helper 即UnityGameFramework.Runtime.DefaultLogHelper 即可。
注意类库必须不低于3.5 Net Framework版本。
之后你会看到这样的日志就能正常直接跳转到我们想要跳转到的代码行了!
Load lua script 'Utility/Log.lua' OK.
UnityEngine.Debug:Log(Object)
UnityGameFramework.Runtime.DefaultLogHelper:Log(GameFrameworkLogLevel, Object)
GameFramework.GameFrameworkLog:Info(String, Object)
UnityGameFramework.Runtime.Log:Info(String, Object)
StarForce.ProcedurePreload:OnLoadLuaScriptSuccess(Object, GameEventArgs) (at Assets/GameMain/Scripts/Procedure/ProcedurePreload.cs:189)
GameFramework.EventPool`1:HandleEvent(Object, GameEventArgs) (at Assets/ThirdResources/GameFramework/Base/EventPool/EventPool.cs:264)
GameFramework.EventPool`1:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Base/EventPool/EventPool.cs:75)
GameFramework.Event.EventManager:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Event/EventManager.cs:68)
GameFramework.GameFrameworkEntry:Update(Single, Single) (at Assets/ThirdResources/GameFramework/Base/GameFrameworkEntry.cs:29)
UnityGameFramework.Runtime.BaseComponent:Update() (at Assets/ThirdResources/UnityGameFramework/Scripts/Runtime/Base/BaseComponent.cs:227)
好了就这样。。
【Unity3D】解决封装Debug后双击日志跳转位置不正确问题相关推荐
- 解决Jupyter notebook安装后不自动跳转网页的方法
解决Jupyter notebook安装后不自动跳转网页的方法 参考文章: (1)解决Jupyter notebook安装后不自动跳转网页的方法 (2)https://www.cnblogs.com/ ...
- 解决微信小程序使用switchTab跳转后页面不刷新的问题
解决微信小程序使用switchTab跳转后页面不刷新的问题 参考文章: (1)解决微信小程序使用switchTab跳转后页面不刷新的问题 (2)https://www.cnblogs.com/mmyk ...
- 关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxxxxx的问题
关于解决SpringBoot中使用redirect重定向后,页面跳转后ulr地址后面出现jsessionid=xxxx的问题 参考链接:https://blog.csdn.net/zshake/art ...
- Ubuntu下安装Inode后双击InodeClient无反映解决方法
由于比较喜好linux编程环境,所以准本一直使用linux.学校无线有时有有时没很不爽,所以准本安装Inode,但是安装完Inode后双击是一直没反映.最后求助万能的百度,谁知道百度的搜索不得不说太差 ...
- .NET Core开发实战(第19课:日志作用域:解决不同请求之间的日志干扰)--学习笔记...
19 | 日志作用域:解决不同请求之间的日志干扰 开始之前先看一下上一节的代码 // 配置的框架 var configBuilder = new ConfigurationBuilder(); con ...
- Android代码混淆后查看日志
Android中可以通过混淆减少apk的大小,提高apk反编译的难度. 但是在混淆过后会遇到一个问题,就是日志,比如说错误日志的函数会变成abcd. 怎么解决这个问题呢 通过mapping文件 map ...
- 解决:ngxin做http强制跳转https,接口的POST请求变成GET
解决:ngxin做http强制跳转https,接口的POST请求变成GET 域名配置了http强制跳转htpps后发现app发起post请求会出现405错误. 所以怀疑是http强制跳转https出现 ...
- Unity打包后的日志
打包后查看日志可以使用Log Viewer插件,在发布后鼠标左键逆时针画个圈就可以调出日志窗口,很方便. 但是有个问题,输出的日志不能定位到具体的代码行数,原先在Editor模式下显示的代码行数发布后 ...
- 检查计算机的更新红叉,快速解决win10更新后没有声音小喇叭有个红叉解决教程...
大家在操作电脑时一定会遇到很多问题,比如说win10更新后没有声音小喇叭有个红叉解决教程就是我们经常会遇到的,小编及身边的朋友也遇到过win10更新后没有声音小喇叭有个红叉解决教程很多次,针对win1 ...
最新文章
- python拆分excel的sheet为单文件_python拆分Excel表格并发送邮件
- mxnet cannot import name 'nd'
- 安装 VMware Workstation Pro 16 并创建 ubuntu 20.04 虚拟机
- xpath contains_Python 爬虫进阶: Scrapy Shell 和 Xpath 学习心得
- ajax核心技术1---XMLHttpRequset对象的使用
- as400还有发展前景吗_web前端还有发展前景吗?该如何去学习
- 蓝桥杯练习题:对给定整数基于斐波拉契数列构造字符串
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](四)
- 类与类加载器---《深入理解java虚拟机》
- BT.1120协议简介
- 纯干货 | 从淘宝到云端的高可用架构演进
- ESP32核心原理图
- 【金融财经】金融市场一周简报(2017-09-08)
- uchome 标签讲解
- html中splice向数组添加元素,js中splice()的强大(删除,插入或替换数组的元素)
- JARVISOJ RE
- 天线原理答案 魏文元
- JAVA模拟淘宝、天猫登录
- Python爬虫入门-小试ImagesPipeline爬取pixabay和煎蛋之为什么是‘404’
- 打开Spyder出现You have missing dependencies