![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
文章平均质量分 79
lx2054807
这个作者很懒,什么都没留下…
展开
-
Unity大规模骨骼动画优化方案
1. 需求出现 最近项目有了新的需求, 需要敌我双方英雄各自带领数十(百)个小兵对冲, 乱战. 在之前的方案基础上去掉特效后效等进行测试, 发现性能开销简直惨不忍睹, 帧数只能勉强维持15-20的样子, 200个英雄+小兵的情况下CPU大概有40ms的耗时, DrawCall200多个. 分析后发现开销基本在处理动画和drawcall上.2. 解决方案 针对上面的两个问题, DrawCall过多很容易联想到GPU Instancing, 因为小兵的mesh和材质都一样, 不过有一个问题, 小兵使原创 2020-11-03 15:38:42 · 2268 阅读 · 0 评论 -
Unity资源导入优化
这几天学了不少优化相关的课程, 趁还没忘完把脑子里还记着的整理一下= =. 所有资源导入(Importer)相关的都可以自己写导入类继承AssetPostprocessor处理, 然后自动化生成导入报告, 一旦发现资源有问题根据报告找对应人员. 但是对于一些小的, 相对没那么规范的团队, 属实是想的太美了, 最后还是美术来找你让你帮着查问题. 所以我的做法是在所有preprocess阶段都不处理, 后面包装成一件优化之类的按钮, 有问题直接报出来当场修改.动作Animation Type首先原创 2020-08-18 19:02:52 · 849 阅读 · 0 评论 -
C#中的迭代器
1.迭代器模式 迭代器模式指按照一定顺序来访问一个集合对象中的每个元素, 但是同时不会暴露集合对象的内部结构. C#中内置的迭代器模式就是Foreach语句, 它可以顺序遍历容器中的每个元素. 而迭代器的具体实现主要是靠IEnumerable 和IEnumerator.2. IEnumerator IEnumerator接口其实就是foreach的具体实现, 它只定义了三个函数, 如下 public interface IEnumerator { bool MoveNext();原创 2020-08-13 17:01:49 · 1583 阅读 · 0 评论 -
Unity实现游戏小地图
3D游戏中, 一般会需要一个小地图挂在某个角落来提醒玩家位置, 资源位置, BOSS位置等等. 小地图是场景的略缩图, 同时这个小地图应该是实时刷新的, 用于更新玩家在地图中的位置.为了实时把玩家在场景中的位置反应到小地图上, 首先我们要创建一个新的摄像机放在场景的正上方用于渲染整个场景范围. 摄像机投影方式改为正交, 范围根据场景可移动范围大小调节. 新建一个render texture并且把摄像机输出设置为它, 在UI层级挂一个Raw Image, 把我们刚才创建的texture挂上去, 这是原创 2020-06-19 11:55:08 · 1112 阅读 · 0 评论 -
图集工具TexturePacker的使用
1.为什么要打图集 降Draw Call! 在Unity中, 每一次引擎准备好要渲染数据并通知GPU的过程称为一次Draw Call. 对于开发者而言, 每帧的drawcall越低越好, 过多的drawcall会导致渲染过程极度耗时造成视觉卡顿. Unity内置了批次处理技术(batch), 只要游戏对象的Transform(不太严谨)和材质相同, 就合并为一个批次, 在一个drawcall内处...原创 2019-10-25 14:57:42 · 2641 阅读 · 1 评论