![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
文章平均质量分 77
游蓝海
游戏编程
展开
-
Unity资源加载闪退问题深度分析
游戏线上测试总是有一些很奇怪的crash信息上报,闪退点是Unity引擎C++层的方法GameObject::GetSupportedMessagesRecalculate。我们自己平时跑游戏,偶尔也会在场景切换的时候发生闪退。经过初步分析,确定是同一个crash。虽然收集到的闪退率不高,但既然我们自己人都碰到了,那线上实际情况可能会更容易出。结论很简单,想看结论,直接跳到末尾即可。分析过程很坎坷,断断续续跨了有两三个月。分析过程分为两个阶段,阶段一主要是围绕崩溃点本身进行的分析,没有得出结论;阶段二,是原创 2021-09-09 19:17:19 · 10930 阅读 · 0 评论 -
开始unity学习
手游3D化是大势所趋,目前最流行的3D手游引擎非Unity莫属。虽然cocos2d-x也在做3D引擎,但毕竟会受到原本2D框架的束缚,扩展起来容易捉襟见肘,再加上工具链的严重缺乏,所以cocos3d-x在未来很长一段时间内也无法赶超Unity。我等靠技术混饭吃的人,决不能坐吃等死,在闲暇之余,学习一些新的知识来原创 2015-10-17 14:12:05 · 910 阅读 · 2 评论 -
u3d tolua + ZeroBraneStudio远程调试
tolua默认支持ZeroBraneSudio(以下简称zbs)的本地调试,但不能进行远程调试。其实远程调试也很简单,只需要将zbs的mobdebug.lua脚本拷贝到你的工程Lua目录下,在需要调试的地方,执行代码require("mobdebug").start(ip, port)即可连接到zbs进行调试。但是,还需要一些配置,才能完美的进行下去。拷贝mobdebug脚本将脚本mobdebug.原创 2017-02-13 22:04:10 · 4966 阅读 · 0 评论 -
ULUA的简洁用法(二)
写上一篇文章《ULUA简洁用法》的时候,我对ULUA的认识还不是很深,经过一段时间的摸索后,我又整理了另一种更简单的方式,不需要修改ULUA源码,一个代码文件就能容纳下所有需要的内容。1.原理给GameObject添加上一个C#脚本组件作为中间层,在中间层上绑定上一个LUA脚本,将Unity的所有回调接口通过中间层传递到...原创 2017-04-23 22:40:53 · 1730 阅读 · 0 评论 -
ULUA的简洁用法
ULUA所推荐的几种framework虽然功能强大,但是结构比较复杂,对于unity初学者来说太过麻烦和冗余。因此我自己总结了一套很简洁的用法,抛开MVC和各种框架,直接使用tolua实现Unity与LUA交互。原创 2016-04-04 23:25:40 · 11411 阅读 · 12 评论 -
unity tolua跨语言对象引用原理和内存泄漏问题分析
unity tolua跨语言对象引用原理和内存泄漏问题分析原创作者游蓝海,转载请注明出处垃圾回收概述对于c#和lua这两种语言,都有自己的垃圾回收机制(gc),并且垃圾回收算法都是用的标记清扫方式,也就是说不管对象间的引用有多复杂,只要没有被对象根结点直接或间接引用,都是可以被当做垃圾清理掉。还有一种简单粗暴的内存管理方式,是c++智能指针的引用计数。这种方式的回收效率最高,只要对象没有被...原创 2018-10-24 23:14:51 · 3256 阅读 · 2 评论 -
C#委托传递给C++函数指针
C#委托传递给C++函数指针原创作者游蓝海,转载请注明出处最近在Unity中集成一些C++库,跨语言交互的时候遇到了一个坑——不能直接将extern方法的参数声明为委托类型。因为将方法作为参数传递的时候,C#会自动创建一个临时的委托对象,然后将委托对象的指针传入C++。由于委托对象是临时的,在垃圾回收的时候回会被回收掉,导致C++端的函数指针就变成野指针了。因此,在传递委托参数的时候,需要自...原创 2018-10-24 23:37:05 · 4551 阅读 · 3 评论