LudoArt Blog

The programmer of tomorrow is the magician of the future.

URP主要源码解析

URP主要源码解析 大体结构 RenderPipelineAsset > RenderPipelines > Renderer > RenderPass 另外,RenderFeature通过配置RenderPassEvent,与持有RenderPass的实例,并将其注入到Renderer中对应的时机进行执行。 具体分析 UniversalRenderPipelin...

C#方法

C#方法 实例构造器和类(引用类型) 构造器是将类型的实例初始化为良好状态的特殊方法。创建引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步块索引),最后调用类型的实例构造器来设置对象的初始状态。 极少数时候可以在不调用实例构造器的前提下创建类型的实例,除了: Object的 MemberwiseClone 方法; 和运行时序列化器...

C#数组

C#数组 数组是允许将多个数据项作为集合来处理的机制。CLR支持一维、多维和交错数组(即数组构成的数组)。 所有数组类型都隐式地从 System.Array 抽象类派生,后者又派生自 System.Object ,这意味着数组始终是引用类型,是在托管堆上分配的。 Int32[] myIntegers; // 声明一个数组引用,myIntegers刚开始为null myIntege...

C#事件与委托

C#事件与委托 事件 定义了事件成员的类型能提供以下功能: 方法能登记它对事件的关注 方法能注销它对事件的关注 事件发生时,登记了的方法将收到通知 CLR事件模型以委托为基础。委托是调用(Invoke)回调方法的一种类型安全的方式。 编译器如何实现事件 如: public event EventHandler<NewMailEventArgs> Ne...

C#托管堆和垃圾回收

C#托管堆和垃圾回收 托管堆基础 访问一个资源所需的步骤: 调用IL指令 newobj,为代表资源的类型分配内存(一般使用C# new 操作符来完成) 初始化内存,设置资源的初始状态并使资源可用。类型的实例构造器负责设置初始状态 访问类型的成员来使用资源(有必要可用重复) 摧毁资源的状态以进行清理 释放内存。垃圾回收器独自负责这一步 从托管堆分配资源 CLR...

Unity杂项

Unity杂项 Unity脚本生命周期 MeshRender 中 material 和 sharedmaterial 的区别 ? material 属性提供了引用到游戏对象渲染器的材质的克隆实例。材质属性的任何变化只会反映在被引用的游戏对象上。 sharedmaterial 属性提供引用到 GameObject 渲染器的实际材质。共享材料中的任何...

《Effective C#》改善C#代码的50个有效方法

《Effective C#》改善C#代码的50个有效方法 C# 语言的编程习惯 第1条:优先使用隐式类型的局部变量 隐式类型的局部变量加入C#语言的原因: 为了支持匿名类型机制; 某些查询操作所获得的结果是 IQueryable<T> ,而其他一些则返回 IEnumerable<T> ,如果硬要把前者当成后者来对待,那就无法使用由 IQueryPro...

《Unity ShaderLab新手宝典》

《Unity ShaderLab新手宝典》 ShaderLab语法基础 Shader的组织结构 Shader "Name" { Properties { //开放到材质面板的属性 } SubShader { //顶点-片段着色器 //或者表面着色器 //或者固定函数着色器 } SubShader { //更加精简的...

《Unity性能优化》之资源导入工作流

Unity资源导入工作流 资源导入工作流的三种方案: 手动编写工具 利用Preset AssetGraph工具 手动编写工具 优点:根据项目特点自定义安排导入工作流,并可以和后续资源制作与打包工作流结合; 缺点:存在开发和维护成本,会让编辑器菜单界面变得复杂,对新人理解工程不友好; AssetPostprocessor:https://docs.unit...

《Unity性能优化》之音频优化

Unity音频优化 原理 录制原始音频 采样频率:即每秒采样多少次,最常见的为44100Hz(CD音质),单调的短音效可以考虑22050Hz(广播音质) 采样精度:每次采样的结果用多少位保存,最常见的为16bits 采样时间:音频播放多久(秒) 通道(声道)数:在几个位置进行采样 未压缩音频 文件体积 = 内存占用大小 =采样频率 × 采样精度 × 通道数 × 采样时间 = ...