Unity优化
江小白同学
这个作者很懒,什么都没留下…
展开
-
解决Timeline暂停时坐标重置问题
网上找了好多答案,基本上都是复制粘贴,然后还没啥卵用…https://blog.csdn.net/weixin_38239050/article/details/79902799这篇文章是有效果的。总结:Animator勾选这里,覆盖掉角色的位移,就不会在继续timeline的时候重置位置了...原创 2021-09-06 10:44:12 · 804 阅读 · 0 评论 -
优化Lua使用Vector3产生GC
Vector3是结构体,在C#中本不会产生GC。但是由于Vector3属于C#的结构体,当Lua使用Vector3时就会产生GC。通常在使用摇杆时,就会生成许多的Vector3对象,用于设置移动的位置与方向。我们可以通过在lua中自定义Vector3以为缓存生成出来的Vector3(因为方向值基本上就那么多个,缓存以避免重复生成),来达到减少GC的目的local Vector3 = {}setmetatable(Vector3, __UnityEngine.Vector3)-- 创建Vector原创 2021-04-13 17:28:59 · 1309 阅读 · 0 评论 -
C# List<T>使用优化
List在我们的开发过程中经常会用到,但其实List的数据插入与删除操作是非常耗时的。关于删除的优化:我们可以先将List中需要删除的元素与最后一个元素置换位置,然后再调用删除操作测试代码如下...原创 2021-04-13 16:01:27 · 702 阅读 · 0 评论 -
C#等待多线程完成(await与async)
C#优雅的完成多线程回调(await与async)遇到的问题遇到的问题我在写一个关于从资源服下载网络资源的代码时遇到一个问题,即我们无法在一个方法块中完成我们想要做的所有逻辑,即请求下载,资源加载完成逻辑。我们通常的处理方式为:调用资源下载接口,传递资源加载成功回调方法当资源下载完成后,再去资源加载回调中去做资源处理。当我们完成一个需求,需要下载多个资源时,回调方法将会越来越多。我们的代码也将越来越复杂。将会产生如下的狗屎代码:我们不能够直接得到文件,只能在此处请求资源下载,然后再将逻辑放原创 2020-11-30 16:21:19 · 3917 阅读 · 0 评论 -
Unity让对象看向目标方向
/// <summary> /// 设置对象的前方向 /// </summary> /// <param name="vForward"></param> public void SetForward(Vector3 vForward) { Root.transform.forward = vForward; }/// <summary> /// 获得前置向量 //原创 2020-10-12 10:56:39 · 1942 阅读 · 0 评论 -
Unity纹理压缩优化
纹理的分辨率为2的幂次方,则可以大大压缩图片大小原创 2020-10-11 14:33:25 · 203 阅读 · 0 评论 -
Unity在移动端纹理压缩格式选择
Unity在移动端纹理压缩格式选择转载自:https://mp.weixin.qq.com/s/DnjBUqK5MtJyqucHxOL57QUnity几种ETC纹理压缩格式:RGB ETC1 4 bit :4 bits/pixel,对RGB压缩比6:1,不支持Alpha,绝大部分安卓设备都支持。RGB ETC2 4 bit :4 bits/pixel,对RGB压缩比6:1。不支持Alpha,ETC2兼容ETC1,压缩质量可能更高,但对于色度变化大的块误差也更大,需要在OpenGL ES 3.0和Op转载 2020-10-11 14:13:52 · 1492 阅读 · 1 评论 -
UGUI移动端材质丢失问题修复
之前一直是打的PC包,后来发布安卓包的时候发现Text和Image材质都丢失了。查了很久最后发现是因为没有设置默认材质导致的…Size加1,新增一个默认材质原创 2020-09-25 19:31:02 · 292 阅读 · 1 评论 -
优化UI点击事件需要加UI组件问题
一般我们UI点击事件都需要有类似Image,Text这样的控件。如果我们需要做一个底板可以被点击时,一般的做法就是放一个Image控件上去,然后Sprite设置为空。这种做法会给我们的UI增加一次drawcall。在UI的继承关系中我们发现,带点击事件的UI都继承自Graphic。于是我想通过给空物体增加Graphic做点击事件监听以达到优化性能的目的。这里,我发现代码中强行增加Graphic这个组件会报错不能添加脚本行为图形。脚本类不能是抽象的!那么只需要新建一个类继承Graphic,里面什原创 2020-09-24 17:10:59 · 127 阅读 · 0 评论 -
使用位存储地图信息,优化地图阻挡数据
地图阻挡数据优化思路写入操作读取操作思路一般我们的地图阻挡是否可以行走都以01进行区分,0为可走,1为阻挡。在地图编辑器中,我们会将地图信息存在地图资源文件mapBlock.dat文件中在最开始我们使用的是直接以int类型进行存储,十个场景的阻挡信息内存占用达到了15M。目前,我们已知int占用4个字节,一个字节占用8个位。我们0和1可以用一个位进行存储。那么,原本我们一个int使用了32个字节但是只存储了1个数据,内存占用达到15M,使用位进行存储后,我们可以压缩内存到0.46M。我们最小原创 2020-07-27 17:14:02 · 221 阅读 · 0 评论 -
UGUI打包图集解决方案
UGUI打包图集解决方案前言使用数据准备调用外部EXE程序前言有一个非常好用的打包图集的插件叫TexturePacker,网上百度这个插件自行获取就行使用它是一个exe程序,在Unity调用需要通过ProcessStartInfo进行调用,其实使用比较简单,只需要准备参数,然后再进行调用传值即可。数据准备/*srcFolders : List<string>类型,...原创 2019-04-26 18:20:52 · 949 阅读 · 0 评论 -
Unity内存优化 —— GC详解
Unity内存优化 —— GC详解前言简介Unity内存管理机制简介堆栈内存分配和回收机制堆内存分配和回收机制垃圾回收时的操作何时会触发垃圾回收GC操作带来的问题分析GC带来的问题分析堆内存的分配接下来用两个简单案例阐述值类型和引用类型的回收机制利用profiler window 来检测堆内存分配:降低GC的影响的方法减少内存垃圾的数量清除链表对象池定时执行GC操作前言感谢博客主提供思路,内容...转载 2019-05-25 17:25:25 · 2353 阅读 · 0 评论 -
Unity三种加载方式详解
Unity三种加载方式详解前言有三种资源加载方式:资源的加载与卸载一般的加载流程:一般的释放流程:一个容易出错的例子:前言感谢转载自博客主周小菲的博客,原贴地址:http://www.cnblogs.com/zhoujiangyue/articles/7066070.html有三种资源加载方式:1.静态引用。具体操作:创建public变量,把文件挂到物体上,在Inspector里把相应资源...转载 2019-05-25 23:20:23 · 1785 阅读 · 0 评论 -
隐藏界面最佳解决方案
隐藏界面最佳解决方案隐藏界面方案最优解决办法隐藏界面方案1.SetActive优点:方便快捷缺点:第一,Disable掉的物体上面的脚本也不运行了,而很多时候我们需要那个脚本运行。这样就不能用挂在自己身上脚本把自己SetActive(true)或者SetActive(false)。如果把自己的引用给另外一个脚本来对自己SetActive(true)或者SetActive(false),...原创 2019-05-25 23:42:26 · 787 阅读 · 0 评论 -
Unity内存优化——资源方向
Unity内存优化——资源方向前言资源内存占用纹理纹理尺寸Mipmap功能Read & Write网格Normal、Color和Tangent引擎模块自身占用WebStream和SerializedFile托管堆内存占用总结前言内容转载自博客:https://www.jianshu.com/p/48f1a1b7949e资源内存占用一款游戏项目的资源主要可分为如下几种:纹理(Text...转载 2019-05-27 17:51:34 · 811 阅读 · 0 评论 -
XLua运行时热更新原理与实现
Lua热更新原理前言基本知识最基本的热更新的方式(不可用)__G完整热更新的方法前言感谢提供思路两个博客主以下是博客地址:https://gameinstitute.qq.com/community/detail/120538https://www.jianshu.com/p/7b8ae23ecd81基本知识我们在require一个Lua文件的时候是将Lua文件加载到package.l...原创 2019-05-23 23:27:19 · 5191 阅读 · 0 评论 -
Unity优化篇——ScrollView
ScrollView的优化ScrollView优化的基本思想实现后的效果功能实现思想核心代码ScrollView优化的基本思想一个列表数据可能是几十上百条的,而在UGUI中,虽然Item移出了Content为不可见但其任然占用了资源,而我们能看到的Item数量仅仅是在界面上的五六个。那么我们优化的方式就是重复利用这五六个Item,超出的Item补位到即将出现的Item位置。实现后的效果...原创 2019-03-07 09:36:32 · 3845 阅读 · 3 评论