- 博客(31)
- 资源 (5)
- 收藏
- 关注
转载 《Unity游戏优化》笔记(17)[21/03/18_周四][237_]
目录 8.4.15 预制池 1.可持化的组件 2.预制池系统 3.预置池 4.生成对象 5.预先生成实例 6.对象的回收 7.预制池测试 8.预制池和场景加载 9.预制池总结 8.4.16 IL2CPP优化 IL2CPP optimizations 8.4.17 WebGL优化 8.5 Unity、Mono和IL2CPP的未来 即将到来的C# Job System 8.6 小结 第9章 提示与技巧 前3天看了一下淘宝上购买的视频...
2022-05-26 11:53:42 316
转载 《Unity游戏优化》笔记(16)[21/03/13_周六][201_236]
目录 第8章 掌握内存管理 8.1 Mono平台 8.2 代码编译 8.3 分析内存 8.3.1 分析内存消耗 8.3.2 分析内存效率 8.4 内存管理性能增强 8.4.1 垃圾回收策略 8.4.2 手动JIT编译 8.4.3 值类型和引用类型 8.4.4 字符串连接 8.4.5 装箱(Boxing) 8.4.6 数据布局的重要性 8.4.7 UnityAPI中是数组 8.4.8 对字典键使用InstanceID 8.4.9 for...
2022-05-25 10:52:09 351
原创 C#数据结构与算法—经典排序算法动画与解析
排序算法是《数据结构与算法》中最基本的算法之一。排序算法简介排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序
2022-05-24 13:56:51 265
转载 《Unity游戏优化》笔记(15)[21/03/12_周五][170_188][第6章完_第7章完]
目录 6.3.8 优化Unity UI 6.3.9 优化着色器 6.3.10 使用更少的纹理数据 6.3.11 测试不同的GPU纹理压缩格式 6.3.12 最小化纹理交换 6.3.13 VRAM限制 6.3.14 照明优化 6.3.15 优化移动设备的渲染性能 6.4 本章小结 第7章 虚拟速度和增强加速度 7.1 XR开发 7.1.1 仿真 7.1.2 用户舒适度 7.2 性能增强 7.2.1 物尽其用 7.2.2 单通道立体渲染和...
2022-05-24 11:24:21 206
转载 C#数据结构与算法—哈希表
哈希表 //测试哈希表 int a = 123; Console.WriteLine(a.GetHashCode()); int b = -123; Console....
2022-05-23 11:35:19 230
转载 《Unity游戏优化》笔记(14)[21/03/11_周四][160_170]
目录 6.2 性能检测问题 6.2.1 分析渲染问题 6.2.2 暴力测试 6.3 渲染性能的增强 6.3.1 启用/禁用 GPU Skinning 6.3.2 降低几何复杂度 6.3.3 减少曲面细分 6.3.4 应用GPU实例化 6.3.5 使用基于网格的LOD 6.3.6 使用遮挡剔除 6.3.7 优化粒子系统 6.2 性能检测问题 6.2.1 分析渲染问题 1.CPU瓶颈测试:在不采用批处理和阴影技术的情况下,创建成千个简单的立方体对象。 2.只创建一个需要最少量Dr
2022-05-23 09:58:34 149
转载 C#数据结构与算法—红黑树
2—3树 红黑树 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataStructure3{ class R...
2022-05-20 13:45:29 233
转载 《Unity游戏优化》笔记(13)[21/03/10_周三][149_160]
目录 第6章 动态图形 6.1 渲染管线 6.1.1 GPU前端 6.1.2 GPU后端 6.1.3 光照和阴影 6.1.4 多线程渲染 6.1.5 低级渲染API 第6章 动态图形 现代图形设备的渲染管线相当复杂。即使在屏幕上渲染一个三角形,也需要执行大量的图形API调用,其中包括许多任务。 本章学习如何收集正确的数据,深入了解管线渲染,并探索各种解决方案和解决大量潜在问题的方法。 6.1 渲染管线 在确定GPU瓶颈的过程中,可能需要采用...
2022-05-20 10:10:30 286
转载 C#数据结构与算法—二叉查找树与递归
使用非递归方法往二叉树中查找结点 新建方法类BST1 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataStructure...
2022-05-19 16:26:03 219
转载 《Unity游戏优化》笔记(12)[21/03/09_周二][132_148][第5章完]
5.2 物理优化 5.2.1 场景设置 1.缩放 应该尽可能地使游戏世界中所有物理物体的缩放接近(1,1,1)。 Unity世界空间中的1个单位等于1米。 物体大小应该反映有效的世界尺度,因为缩放过大会导致重力移动物体的速度比预期的要慢得多。 重力参数设置: 任何浮点运算再数值接近0时都会更精确。 再项目早期,应该导入与缩放最常见的物理对象,使其比例值为(1,1,1),然后调整合适的重力值。这将再引入新对象时提供一个参考点。 2.位置 保持所...
2022-05-19 15:48:38 197
转载 C#数据结构与算法—有序数组与二分查找法
二分查找法 将数组进行一个排序如左大右小,设置一个l和r,作为左边界和右边界,首先查找边界的中间值若目标值比中间值大则令中间值-1为新的左边界,若目标值比中间值小则令中间值+1为新的右边界。 有序数组 ...
2022-05-18 11:15:19 101
转载 《Unity游戏优化》笔记(11)[21/03/08_周一][126_132]
目录 5.1.2 静态碰撞器和动态碰撞器 5.1.3 碰撞检测 5.1.4 碰撞器类型 5.1.5 碰撞矩阵 5.1.6 Rigidbody激活和休眠状态 5.1.7 射线和对象投射 5.1.8 调试物理 5.1.2 静态碰撞器和动态碰撞器 动态碰撞器只意味着GameObject包含Collider组件和Rigidbody组件,如果一个动态碰撞器与另一个碰撞器发生碰撞,它们都会基于牛顿运动定律做出反应。 没有Rigidbody组件的碰撞器,称为...
2022-05-18 10:15:49 649
转载 C#数据结构与算法—栈与队列
数组栈 接口代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataStructure3{interfac...
2022-05-17 17:11:30 277
转载 《Unity游戏优化》笔记(10)[21/02/11_周四][121_125]
目录 第5章 加速物理 5.1 物理引擎的内部工作情况 5.1.1 物理和时间 第5章 加速物理 目前为止,讨论的增强建议集中在降低资源消耗和避免发生帧率问题。 如果错过了重要的碰撞事件,游戏在计算的复杂物理事件时会卡顿,或者玩家摔倒在地上,这些都将对游戏质量产生明显的负面影响。 有些游戏可能根本不使用物理,而另一些游戏则要求物理引擎在游戏期间处理大量任务。 本章介绍减少Unity物理引擎中的CPU峰值、开销和内存消耗的方法,同时包括改变物理行为的...
2022-05-17 11:32:04 155
转载 《Unity游戏优化》笔记(9)[21/02/10_周三][P116_120_第4章]
目录 4.3 网格和动画文件 (P116) 4.3.1 减少多边形数量 4.3.2 调整网格压缩 4.3.3 恰当使用Read-Write Enabled 4.3.4 考虑烘焙动画 4.3.5 合并网格 4.4 Asset Bundle和Resource (P119) 4.5 本章小结 (P120) 4.3 网格和动画文件 (P116) 网格和动画文件其实是顶点和蒙皮骨骼数据的大型数组,可以应用各种技术最小化文件大小,同时使其外观相似,却不完全...
2022-05-16 17:20:07 198
原创 Spine2D动画系统添加骨骼动画事件帧
spine是基于骨骼的2D动画系统,相比较与模型动画各有利弊。在做项目时,有时候需要在spine特定骨骼出添加动画帧,类似于模型动画的Animation动画帧一样。接下来就是 spine骨骼的2D动画添加动画帧事件方法教程。1、需要让美术在需要添加关键帧的骨骼处添加事件的名字2、在skeletonData Animation 物体下添加一个子集,并添加脚本BoneFollower,在BoneName中选择你步骤1中添加动画事件帧的骨骼名称。3、完成前两步的准备工作,接下来直接上代码。新建脚本Part
2022-05-12 15:49:50 1768
原创 Spine2D动画一些常用的方法总结
Spine动画常用方法总结,可以通过下面两个脚本实现自己想要的效果1、管理脚本using System.Collections;using System.Collections.Generic;using UnityEngine;using Spine;using Spine.Unity;using System;using System.Runtime.CompilerServices;public class SpineManage : MonoBehaviour{
2022-05-12 15:45:36 344
原创 更改unity中Spine2D动画的颜色
重点:改变MeshRenderer.material的值是没用的。Renderer.material属性只是渲染器生成的副本,但是它会立即被SkeletonRenderer的渲染代码给覆盖。另一方面,Renderer.sharedMaterial会修改原始材质。如果你使用这个材质生成更多的Spine游戏对象,对于它的修改应用会对所有的实例进行修改。Unity的Renderer.SetPropertyBlock是有用的方法。记住,SkeletonRenderer和SkeletonAnimation都使用Me
2022-05-12 15:42:23 1251
原创 Spine2D基础知识
Spine 是一款针对游戏开发的 2D 骨骼动画编辑工具。 Spine 旨在提供更高效和简洁 的工作流程,以创建游戏所需的动画在 Spine 中通过将图片绑定到骨骼上,然后再控制骨骼实现动画。 2D 骨骼动画相对于传统的逐帧动画有以下优势:最小的体积: 传统的动画需要提供每一帧图片。而 Spine动画只保存骨骼的动画数据,它所占用的空间非常小,并能为你的游戏提供独一无二的动画。美术需求: Spine 动画需要的美术资源更少,能为您节省出更多的人力物力更好的投入到游戏开发中去。流畅性: Spin
2022-05-12 15:35:29 3573
转载 《Unity游戏优化》笔记(8)[21/02/09_周二][P97_115]
目录 第4章 着手处理艺术资源 4.1 音频 (P97) 4.1.1 导入音频文件 4.1.2 加载音频文件 4.1.3 编码格式和品质级别 (P101) 4.1.4 音频性能增强 (P103) 4.2 纹理文件 (P106) 4.2.1 纹理压缩格式 4.2.2 纹理性能增强 1.减少纹理文件的大小 2.谨慎地使用Mip Map 3.从外部管理分辨率的降低 4.调整Anisotropic Filtering级别 5.考虑...
2022-05-12 14:47:30 646
原创 日式卡通渲染笔记(罪恶装备 碧蓝幻想 原神 战双)
裁边漫反射(StepDiffuse)传统的漫反射是这样float NL = dot(N,L);float3 Diffuse = max(0,NL);//也可以除以PI而卡通渲染里希望明快的色调对比,不希望有额外的过渡光照信息,可以对NL加一个Step做二分,表现出光照的 亮部 与 暗部。float NL01 = NL*0.5+0.5;//将NL从(-1,1)映射到(0,1) 方便对贴图进行操作float Threshold = step(_LightThreshold,NL01); //阈值/
2022-05-11 14:43:06 2048 3
转载 C#数据结构与算法—链表
通过指定的元素删除指定的结点 链表所用的一些方法:类 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;...
2022-05-11 11:17:46 587
转载 《Unity游戏优化》笔记(7)[21/02/08_周一][P81_96_第3章]
目录 第3章 批处理的优势 (P81) 3.1 Draw Call (P82) 3.2 材质和着色器 (P84) 3.3 Frame Debugger (P86) 3.4 动态批处理(P88) 3.4.1 顶点属性 3.4.2 网格缩放 3.4.3 动态批处理总结 3.5 静态批处理(P93) 3.6 本章小结 第3章 批处理的优势 (P81) 在3D图形和游戏中,批处理是一个非常通用的术语,它描述了将大量任意数据块组合在一起并将它们作为单...
2022-05-11 10:22:55 221
转载 C#数据结构与算法—动态数组
数据结构主要研究的是数据怎么在计算机中组织和存储,是的我们可以高效的获取数据或修改数据。算法可以节约更多的资源,让我们完成一些看起来本不该完成的任务,可将程序的运行速度提高数百万倍。数组的各种方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataStructure{ class A
2022-05-10 16:10:48 1153
转载 C#数据结构与算法学习内容总结
在学习C#数据结构与算法时观看的教学视频是:B站上离忧夏天的《C#数据结构与算法》C#数据结构与算法内容汇总 C#数据结构与算法—动态数组C#数据结构与算法—链表C#数据结构与算法—栈与队列C#数据结构与算法—有序数组与二分查找法C#数据结构与算法—二叉查找树与递归C#数据结构与算法—红黑树C#数据结构与算法—哈希表C#数据结构与算法—排序算法C#数据结构与算法—优先队列和堆排序 ...
2022-05-10 15:56:01 186
转载 《Unity游戏优化》笔记(6)[21/02/07_周日][P69_80_第2章]
目录 2.12 禁用未使用的脚本和对象 2.12.1 通过可见性禁用对象 (P70) 2.12.2 通过距离禁用对象 2.13 使用距离平方而不是距离 2.14 最小化反序列化行为 (P73) 2.15 叠加、异步地加载场景 (P74) 2.16 创建自定义的Update层 2.17 本章小结 (P80) .12 禁用未使用的脚本和对象 场景有时会变得非常繁忙,特别是构建大型的、开放的世界时。在Update回调中,调用代码的对象越多,它的伸缩性...
2022-05-10 13:36:38 68
转载 《Unity游戏优化》笔记(5)[21/02/06_周六][P46-69][消息系统]
目录 2.11 避免运行时使用Find()和SendMessage()方法 (P46) 2.11.1 将引用分配给预先存在的对象 (P49) 2.11.2 静态类 (P51) 2.11.3 单例组件 (P54) 2.11.4 全局消息传递系统(P58) 1.全局可访问的对象 2.注册 3.消息的处理 4.实现消息传递系统 5.消息的查询和处理 6.实现自定义消息 7.消息发送 8.消息注册 9.消息清理 (P67) 10.总结消息传递系...
2022-05-09 11:06:54 433
转载 《Unity游戏优化》笔记(4)[21/02/05_周五][P29_46]
目录 第2章 脚本策略 (P29) 2.1 使用最快的方法获取组件 2.2 移除空的回调定义 (P31) 2.3 缓存组件索引 (P34) 2.4 共享计算输出 2.5 Update、Coroutines和InvokeRepeating (P36) 2.6 更快的GameObject空引用检查 (P40) 2.7 避免从GameObject去除字符串属性。 2.8 使用合适的数据结构 2.9 避免运行时修改Transform的父节点 (P44) ...
2022-05-07 11:22:01 223
转载 《Unity游戏优化》笔记(3)[21/02/04_周四][P27_第1章]
目录 1.2.7 代码片段的针对性分析 1.Profiler脚本控制 2.自定义CPU分析 1.3 关于分析的思考 1.2.7 代码片段的针对性分析 需要进一步分析的实际问题 需求确定问题是否可以重现,在什么情况下出现性能瓶颈,以及问题代码块中问题的确切来源。 分析任务有用的技术 从脚本代码控制Profiler自定义定时和日志记录方法1.Profiler脚本控制 可以通过Profiler类在脚本代码中控制Profiler。最重...
2022-05-06 09:17:02 99
转载 《Unity游戏优化》笔记(2)[21/02/03_周三][P20]
《Unity游戏优化》笔记(2)[21/02/03_周三][P20] llhswwha 于 2021-02-03 ...
2022-05-05 16:31:53 94
转载 《Unity游戏优化》笔记(1)[21/02/02_周二][P15]
《Unity游戏优化》笔记(1)[21/02/02_周二][P15] llhswwha 于 2021-01-3...
2022-05-04 17:24:08 194
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人