在Unity3D中,3D模型合并的主要目的是减少drawcall,优化渲染性能。模型可以被拆分为多个子网格(SubMesh),每个子网格匹配一个材质球进行渲染。Unity3D提供了动态批处理和静态批处理两种模型合并方法,但都有严格的使用条件。
本文介绍了反射原理,包括调用类型的成员的方法、构建类型的实例的方法以及使用绑定句柄减少内存消耗的技巧。同时,还讨论了反射的性能问题和适用场景。推荐链接提供了更多相关内容。
无论是在商业还是个人项目中,Image和Text组件都是我们最常接触的组件之一,它们间接继承自Graphic类。Graphic类中实现了构建网格,更新材质等重要的方法,这篇文章想要对Graphic类和Graphic类组件的重建流程进行讨论。
本文记录了Canvas相关组件的作用,通过对CanvasUpdateRegistry类的代码进行剖析来介绍Canvas渲染前会经历哪些步骤,介绍展示的Unity源码版本基于2019.1
本文记录的是UGUI模块中的裁剪模块:Mask和RectMask2D的一些实现细节以及区别,展示的Unity源码版本基于2019.1
翻阅UGUI源码部分时,会看见一些特殊的容器类型,很多代码中都有使用它们,容器相关的代码被放入了Utility文件夹中
本文介绍了Unity移动平台应用性能优化的笔记,包括使用LOD技术、遮挡剔除技术、减少overdraw、减少实时光照、不使用动态阴影、尽量使用简单的shader等方法来优化片元着色器,以及优化Mono内存和U3D类的内存的方法。
迭代器是包含迭代器块的方法或者属性,本质上是包含了yield return或yield break语句的代码
本文记录了工作中接入安卓SDK过程中遇到的一些难题和查阅的一些资料,内容可能比较散乱
对于引用类型,C#语言已经提供了表示信息缺失的方法:null应用。但是对于值类型,C# 1中并没有相对应的表示空值的方法,鉴于上述这种情景,在C# 2中,可空值类型应运而生
记录了Unity导入图片时常用的参数代表的含义
在项目开发中,我们或多或少会需要实现一些基于拖拽显示的功能,例如任务详情列表,左右滑动选择关卡,背包系统等,这时UGUI的Scroll View控件可能是我们常用的选择