
Unity
文章平均质量分 82
Unity游戏开发
是嘟嘟啊
一个放弃java转投游戏的热血战士!
展开
-
【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算
而切线空间下的法线纹理中每个点存储的法线方向都是以当前顶点的方向为基准的,所以在存储时等同于大家都是以当前点所对应的法线方向为基准的,也就是说如果这个面是平的,那么这个面上的所有法线方向都将是 (0, 0, 1) ,换算成纹素的值就是 RGB (0.5, 0.5, 1) ,刚好是浅蓝色,所以在没有极特殊情况的话,通常法线方向对应的颜色值都与蓝色相近。高度纹理也就是我们俗称的高度图,高度图可以用来实现凹凸映射,高度图中存储的是强度值(intensity),它用于表示模型表面局部的海拔高度。原创 2024-10-16 10:15:03 · 1306 阅读 · 0 评论 -
【Unity】在Unity中播放序列帧动画、播放图集动画
本文通过两种方式播放序列动画,第一种(逐图播放)简单易操作但性能略差,第二种(图集播放)性能相对更好一些但操作相对复杂。不过还是建议使用第二种,因为第二种更适合做合理的架构,不仅仅是序列动画,平时用的 UI 资源也可以一起放到图集资源中,通过不同的名称进行获取。注意【Unity】在Unity 3D中使用Spine开发2D动画。原创 2024-10-16 10:10:18 · 4636 阅读 · 0 评论 -
【Unity】在Unity 3D中使用Spine开发2D动画
场景1:无论是3D游戏还是2D游戏,大部分的游戏都离不开2D UI,要想让UI更好看,通常就要加上一些动画;场景2:制作2D角色动画。现在市面上制作2D动画的软件有很多,但由于 2D 动画制作功能比较简单单一,所以大部分软件都趋于同质化。不过现在仍然有一些公司在深耕2D动画领域,想通过AI这个方向让2D动画制作更简单,我也相信这一天不远了。原创 2024-09-14 11:33:08 · 3865 阅读 · 1 评论 -
【Unity】Unity Shader样例:顶点根据时间放大缩小
功能比较简单,代码中有注释,此处不过多解释了。关键内容为 _Time.y ,这个数值是游戏开始到现在的总秒数,类型为float。根据这个秒数在 Sin 函数的波形中获取某一时间点的数值作为基础系数,再用这个系数来改变顶点在模型空间内的位置即可。本案例提供一个单独的Shader,使得模型顶点(仅渲染)根据时间放大缩小,往复循环。更多内容请查看总目录。原创 2024-09-14 11:31:04 · 472 阅读 · 0 评论 -
【Unity】线性代数基础:矩阵、矩阵乘法、转置矩阵、逆矩阵、正交矩阵等
矩阵的感性意义在于它为我们提供了一种简洁、直观、有力的数学工具来描述和理解现实世界的复杂现象和变化规律。无论是组织数值、描述变换、简化计算还是数学建模和感性认知等方面,矩阵都发挥着不可替代的重要作用。而在游戏开发行业中,矩阵是你从小白到大神 **无法绕过的必修课** 之一!原创 2024-08-05 23:52:49 · 1968 阅读 · 1 评论 -
【Unity】向量应用:已知入射方向和法向量求反射方向(跳弹系统)
n’ 可以用 v1 和 n 的点乘值再乘以 n 的单位向量来获取,公式为: n’ = Dot( v1, n ) * n.normalized。所以最终的公式为v2 = v1 - (2 * Dot( v1, n ) * n.normalized)。而 n 等于 n’ 的二倍,所以得出公式为:v2 = v1 - (2 * n’)。已知入射向量v1和法向量n(OB),求反射向量v2,上述向量均为单位向量。设 AO为 v1;OD 为 n’;用 v1 - n 即可得到 v2(方向)。更多内容请查看总目录。原创 2024-06-17 23:50:12 · 546 阅读 · 0 评论 -
【研发日记】【策划向】(一)游戏策划其实就是一道加减法题
诚然,这类游戏确实能在短时间内通过砸钱宣发实现爆发式的增长,但玩家的流失也是爆发式的,因为游戏的核太过模糊,而玩家都是有自己的固定取向的,模糊的游戏玩着玩着就忘了。与游戏的核心玩法不一样,卖点可以是核心玩法,也可以是其他方面的东西。再比如玩法上的创新,相信大家都不会忘记当年的那款《纪念碑谷》吧,游戏虽然不算大,但是在玩法上却有很好的创新,虽然不能跟3D之父这种级别的人物去比,但起码给了3D游戏更多的想象空间,这些年陆陆续续出现的很多游戏都有《纪念碑谷》的影子,比如《笼中窥梦》、《Viewfinder》。原创 2024-05-25 13:57:35 · 990 阅读 · 0 评论 -
【Unity】程序创建Mesh(二)MeshRenderer、光照、Probes探针、UV信息、法线信息
关于UV和法线相关的更细节的内容,我会在渲染章节再进行细致的学习和记录(详见文档下方的目录),欢迎大家一起学习。更多内容请查看总目录【Unity】Unity学习笔记目录整理。原创 2024-03-15 00:11:46 · 2676 阅读 · 0 评论 -
【Unity】程序创建Mesh(一)Mesh网格、代码创建模型、顶点信息、三角形信息、MeshFilter、MeshRenderer
首先三角形信息的数据格式是一个 int 类型的数组,数组中的每个元素就是三角形的一个顶点(顶点是可以共用的),这个数组每三个元素形成一个面,所以数组的长度通常是3的倍数。具体来说,如果我们按照逆时针顺序(从三角形的一个顶点开始,沿着边缘到下一个顶点,再到下一个,最后回到起始顶点)来定义三角形的顶点,那么当观察者站在三角形的“外部”时,这个面会朝向观察者,我们称之为“正面”或“前向面”。相反,如果顶点顺序是顺时针的,那么当观察者站在三角形的“外部”时,这个面会背向观察者,我们称之为“背面”或“后向面”。原创 2024-03-14 23:42:42 · 4679 阅读 · 2 评论 -
【Unity】Tag、Layer、LayerMask
在Unity中,Layer的核心作用其实就是给游戏对象分类,这样我们就可以针对这些类别进行统一处理。比如我正在做一个Moba游戏,需要一个小地图,我打算用一个相机从地图上方俯视,这时候我需要在地图中显示一些标记(比如玩家的标记,怪物的标记)在地图上,这些标记是跟着玩家移动的,但是我的主相机中又不想看到这些标记,这时候就可以把这些标记指定为一个特殊的层,比如 “MapSignal” ,然后我们将主相机设置为不看 “MapSignal” 层,我们的功能就实现了。原创 2024-03-09 16:06:04 · 2663 阅读 · 2 评论 -
SQL优化基础教程
在这单表查询统计的情况下,如果要过滤的条件没有涉及 到要计算字段,那它们的结果是一样的,只是where可以使用rushmore技术,而having就不能,在速度上后者要慢如果要涉及到计算的字段,就 表示在没计算之前,这个字段的值是不确定的,根据上篇写的工作流程,where的作用时间是在计算之前就完成的,而having就是在计算后才起作用的, 所以在这种情况下,两者的结果会不同。如果索引是建立在多个列上,只有在它的第一个列(leading column)被where子句引用时,优化器才会选择使用该索引。原创 2023-05-29 18:15:45 · 935 阅读 · 0 评论 -
【Unity】Unity C#基础(十六)C#中的? 、?. 、?? 、??=
C# 8.0 及更高版本中可使用空合并赋值运算符?=,该运算符仅在左侧操作数的求值结果为 null 时,才将其右侧操作数的值赋值给左操作数。如果左操作数的计算结果为非 null,则?= 运算符不会计算其右操作数。用于定义引用类型和可空类型的默认值。如果此运算符的左操作符不为Null,则此操作符返回左操作数,否则返回右操作数。为了使值类型也能使用可空类型,就可以使用“?”来表示,表现形式为“T?是System.Nullable的缩写,更便于读取。引用类型能用空引用来表示一个不存在的值,但是值类型不能。原创 2023-04-11 09:59:41 · 1362 阅读 · 1 评论 -
【Unity】Unity C#基础(十五)implicit 隐式类型转换、explicit 显式类型转换
Implicit提高了代码的可读性,但程序员需要自己保证转换不引发异常且不丢失信息。Explicit可阻止编译器静默调用可能产生意外后果的转换操作。前者更易于使用,后者能向阅读代码的每个人清楚地指示您要转换类型。C#中的Explicit和Implicit更多内容请查看总目录【Unity】Unity学习笔记目录整理。转载 2023-04-10 11:11:27 · 1202 阅读 · 0 评论 -
【Unity】Unity Shader学习笔记(四)创建和使用、基本语法、属性基本类型、数值精度
shader根据不同的精度设计了float、half、fixed三种类型,其中float精度最高,共32位,几乎适用于任何情况,但内存占用也较高。half的精度是16位的,理论值域是 [ -65536 ~ 65535 ](实际值域好像是65504)。fixed精度最低,只有11位,值域是 [ -2 ~ 2 ]。因为颜色的值域是 [ 0 ~ 1 ] ,所以通常颜色是使用 fixed4来定义的。由于着色器是依赖于材质的,所以创建着色器之前通常要先创建一个材质(Material)。代码块中,其中包含一个。原创 2023-03-10 00:24:12 · 6566 阅读 · 0 评论 -
【Unity】U3D TD游戏制作实例(五)防御塔设计:对象排序、锁定敌人、攻击敌人、防御塔特色功能实现
比如我们的加农炮台需要顶部炮台朝着敌人的位置旋转,此时可以使用扩充的方式,在子类代码中重写 AttackTarget 方法并调用父类方法(base.AttackTarget();父类的锁定敌人方法 LockTarget 和攻击敌人方法 AttackTarget 是常规情况下的处理方式,有时候新的防御塔并不一定用同样的方式锁定敌人或者攻击敌人,此时可以在子类中增加个性化代码。设计防御塔类型以及配置方式,选择几种防御塔做样例,实现防御塔的攻击相关功能,如:锁定敌人、攻击敌人、攻击动画、攻击特效等。原创 2022-11-11 18:28:42 · 3264 阅读 · 1 评论 -
【Unity】Unity C#基础(十四)注释
在 C# 智能注释时,常常希望它能在开发时显示为换行,使得提示更加友好!/// 是智能注释也称xml注释,会在被编译,并生成xml文件在可执行文件中。在 View -> Task List ,选择 Comments ,即可以查看项目中所有标记 TODO 的位置。“//TODO:此处还没测试通过”/* 注释内容 */原创 2022-11-11 16:09:59 · 3395 阅读 · 0 评论 -
【Unity】导航细节问题汇总:Instantiate飘移问题
使用 Instantiate 方法实例化预制件时会出现位置飘移的问题,正常情况下角色应该在圆圈位置生成,出现这样的问题是因为我们在设置角色位置时没有关闭 NavMeshAgent 组件,该组件会自动改变位置。解决方案如下方代码,在设置角色的 Position 之前要先关闭预制件上的 NavMeshAgent 组件,等位置设置好以后再打开,就可以解决这个问题了。原创 2022-11-10 23:08:55 · 1442 阅读 · 6 评论 -
【Unity】常用几何知识:根据角度获取圆形上某个点的坐标
通过遍历按钮列表 List _createBtnList ,计算每个按钮的旋转角度,再根据角度计算出按钮的坐标。最后再给这个角度增加90°,让起始坐标从 3 点钟方向变为 12 点钟方向。本案例将按钮的位置设计成围绕着生成器旋转排列。当按钮数量为 3 时,就每隔 120° 放一个按钮,当按钮数量为 4 时,就隔 90°。angle:旋转角度(起始方向为 3 点钟方向)centerX centerY 圆的中心点。更多内容请查看总目录。原创 2022-11-08 18:56:02 · 3867 阅读 · 0 评论 -
【Unity】U3D TD游戏制作实例(四)建造防御塔:防御塔生成器、一个int代表多选框,圆上任意点位的坐标计算、制作防御塔预制件
防御塔生成器、一个int代表多选框,圆上任意点位的坐标计算、制作防御塔预制件。由于目前预想的运行环境是PC端,但后续也可能移植到手机端,且有可能提供玩家自定义关卡的功能,所以将防御塔建造点设置为固定位置模式。也就是当鼠标停留在可建造防御塔的位置时显示一个建造区域,当鼠标点击这个区域时弹出建造防御塔的UI菜单。如下图:演示效果如下:Unity制作炮台防守游戏(2)建造炮台。原创 2022-11-08 18:42:25 · 2185 阅读 · 3 评论 -
【Unity】Unity开发进阶(八)Windows解析Excel报错问题、跨平台解析Excel文件
Excel文件的读取问题 ; Unity读取Excel文件报错 ; Windows解析Excel报错 ; Excel.ExcelOpenXmlReader.IsDBNull ; Unity Excel.ExcelOpenXmlReader.IsDBNull ; NullReferenceException: Object reference not set to an instance of an object ; 读取Excel文件时出现null的解决方法 ;原创 2022-10-19 23:16:15 · 1503 阅读 · 1 评论 -
【Unity】U3D TD游戏制作实例(三)相机管理器、生成敌人优化、敌人血槽小组件
由于是正交镜头,所以此处画布朝向不是直接指向镜头位置的,而是要根据镜头俯仰角度做运算,找到相应的点位,然后LookAt这个点位,如下图:我们已知镜头的俯视角为 x ,再设 a 边为 10 ,计算 c 边,进而得到 p 点的位置,最后使画布朝向 p 点。注意:以上代码有部分为硬编码,比如左右边缘位置以及随着缩放比例变化的缩放系数 scaleRatio 的计算方式,但目前版本已经有较合理的表现,所以暂时不做修改。当敌人到达终点后销毁敌人,目前只做简单的销毁,后续再将造成伤害的代码加进去。原创 2022-10-19 00:39:00 · 1438 阅读 · 0 评论 -
【重温经典】《谁谋杀了我们的游戏?》出自《黑神·话悟空》制作人Yocar
文章出自2007年,由《斗战神》主策划Yocar(尤卡:本名冯骥,《黑神话悟空》制作人)编写,记载了当时游戏市场中的乱象以及对造成这个乱象的原因,深刻反思了游戏制作行业的一些存在的问题。全文字字珠玑,虽是07年的文章,现在看来仍颇有建树。对于游戏人来说,这是一场灵魂拷问,在善与利之间,我们究竟该如何取舍?原创 2022-10-13 16:06:17 · 19898 阅读 · 12 评论 -
【Unity】U3D TD游戏制作实例(二)配置关卡、加载Excel配置文件
然后再创建一个 LevelManager 脚本来读取配置,这个 LevelManager 后期将会实现关卡的加载、开始、结束,以及生成敌人等功能。前面三个小的是第一轮的,中间两个大的是第二轮的,后面小的是第三轮的。本章主要实现通过 Excel 配置关卡数据, Unity 解析 Excel 生成关卡,实现自动刷新敌人。注意,EnemyGeneratePoint 的位置要放在地图上合理的位置上,不然导航将会报错。用 Excel 写一个配置文件,上面预留两行,左侧预留一列方便后期做填写说明。原创 2022-09-26 16:13:36 · 2402 阅读 · 2 评论 -
【Unity】U3D TD游戏制作实例(一)创建敌人、加载预制件
TD(炮台防守)类游戏是比较经典的游戏类型,当年在 War3 中有很多 TD 类地图,还有类似《保卫萝卜》这种 2D 炮台防守游戏也曾火爆一时。本次实例将使用 Unity 实现此类游戏,功能包含地图创建、敌人创建、敌人导航、炮台创建与升级、炮台攻击、敌人攻击等功能。原创 2022-09-26 11:44:48 · 2527 阅读 · 0 评论 -
【Unity】Inspector中脚本中文乱码问题
打开项目时,EditorConfig 插件会在打开文件的目录和每个父目录中查找 .editorconfig 文件,如果到达根文件路径或EditorConfig 文件root = true,则文件搜索将停止。这种情况,我们可以使用 EditorConfig 插件来统一处理,而且这个插件还可以帮助我们规范代码,更方便团队管理代码格式。配置文件写好后,保存,然后重启 VS,后面再保存的文件就会使用 UTF-8 来处理了。在编辑器扩展商店中搜索 EditorConfig ,点击下载,成功后重启 VS。原创 2022-09-26 00:03:03 · 2453 阅读 · 2 评论 -
【Unity】Navigation 选择性寻路:Area Mask
在上一章节我们讲了窄桥、隧道、斜坡、台阶、坠落、跳跃等不同的烘焙方式,但还有一些导航的特殊情况。有时候某些特殊地形只能特定的角色才能通过,比如会游泳的角色才能下水,或者只有猴子才能爬上高坡,这时候就要进行选择性寻路了,通常我们使用Area Mask来实现这个功能。原创 2022-09-20 19:07:09 · 1668 阅读 · 1 评论 -
【Unity】导航 Navigation 设置:窄桥、隧道、斜坡、台阶、坠落、跳跃
Navigation 可以帮助我们自动生成坠落的外链,步骤是先在 Navigation 的 Object 标签页选中可以跳下的物体,勾选物体的 Navigation Static 和 Generate OffMeshLinks 属性。Navigation 是导航网格的核心模块,可以实现对 Agent(代理)、Area(区域)、Bake(烘焙)、Object(对象)的配置。通过调整跳跃距离可以实现自动生成跳跃的外链接。烘焙设置可以调整烘焙的方式,如代理半径、可移动斜坡角度等。更多内容请查看总目录。原创 2022-09-20 16:37:43 · 2402 阅读 · 0 评论 -
【Unity】导航基本组件:Nav Mesh Agent、Off Mesh Link、Nav Mesh Obstacle
如果该障碍物是可移动的障碍物,可以使用 Nav Mesh Obstacle 组件,实现物体的动态碰撞。比如一些动态机关或可移动的墙壁等。动态障碍物通过 Carve 设置也可以实现动态烘焙挖孔,但性能损耗较大,通常情况下尽量不要使用该功能。原创 2022-09-20 15:34:31 · 7238 阅读 · 0 评论 -
【Unity】Unity寻路系统讲解及Navigation实际应用
如果一个简单游戏只有一个代理在场景中移动,可一次性找出走廊的所有拐角,并推动角色沿着连接拐角的线段移动。描述路径的多边形的线性列表是用于转向的灵活数据结构,并可在代理的位置移动时进行局部调整。由于算法是局部的,因此它只考虑即将发生的碰撞,并且不能绕过陷阱或处理障碍物挡路的情况。这些情况需要知道动作的位置。由于每一帧中的代理移动距离非常小,我们可以使用多边形的连接来修复走廊,以防我们需要稍微绕道而行。单元格寻路就是把地图分隔为多个格子,形成一个矩阵,每个格子标注是否可移动,角色在可移动的格子内寻路。原创 2022-09-17 15:52:53 · 7333 阅读 · 2 评论 -
【Unity】Unity插件:地形编辑器MTE(Mesh Terrain Editor)
MTE(Mesh Terrain Editor)是一款Unity的地形编辑器插件,该插件能够更方便的创建和编辑地图,提升场景开发效率。原创 2022-09-14 20:56:30 · 10427 阅读 · 0 评论 -
【Unity】模型文件格式、常见3D模型格式
除非在计算机上安装了相应的 3D 建模软件,否则保存为 .ma、.mb、.max、.c4d 或 .blend 文件的资源将无法导入。.obj文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件"Advanced Visualizer"开发的一种标准3D模型文件格式,很适合用于3D软件模型之间的互导。.fbx最大的用途是用在诸如在 Max、Maya、Softimage 等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥 Max 和 Maya 等软件的优势。原创 2022-09-09 21:52:17 · 18462 阅读 · 0 评论 -
【Unity】Unity 欧拉角、四元数、万向节死锁、四元数转轴角
所以我们要了解的是,欧拉旋转是一定要有顺序的。这样的问题其实是无法避免的,但是我们可以根据物体的旋转情况对此进行优化,这个优化的方法就是给三个轴指定一个新的层级顺序。欧拉角的旋转就是沿着万向节的轴旋转的。目前人类最常用也最容易理解的方式是先沿着X轴旋转,再沿着Y轴旋转,最后沿着Z轴旋转,最后达到目标旋转角度。在使用欧拉旋转的情况下,万向节锁的情况是无法避免的,为了更好的表示旋转,Unity引入了四元数的概念。Unity的优化方案:在万向节死锁的情况下,规定沿z轴完成绕竖直轴的全部旋转,即此时y轴旋转为0。原创 2022-09-09 18:01:00 · 4371 阅读 · 0 评论 -
【Unity】Unity常用类:向量Vector3、四元数Quaternion
但如果有任意三个向量为标准化向量(大小为1),且彼此正交(互相垂直),他们就可以被认定为轴。Vector3提供了一些静态变量,方便使用常用的方向,例如Vector3.up代表了Vector3(0, 1, 0)。通常使用此方法来做轴旋转(对Transform进行转转),使其一个轴(如 y 轴)跟随世界空间中的目标方向。正交标准化可以用来生成新的坐标系,但与正常坐标系不同的是,其正切向量与副向量是不固定的。例:用脚本创建物体,第三个参数角度可使用,使用后所创建的物体将于世界坐标一致。获取两个四元数之间的角度。原创 2022-09-09 17:57:48 · 6796 阅读 · 0 评论 -
【Unity】Unity 几何知识、弧度、三角函数、向量运算、点乘、叉乘
向量是一个数字列表,表示各个维度上的有向位移。它是一个有大小有方向的物理量。大小就是方向的模长,方向描述了空间中向量的指向。向量可以用来表示物体的位置和方向。原创 2022-09-07 14:02:50 · 5141 阅读 · 5 评论 -
【Unity】如何查看源码
将apk文件后缀名改为zip,然后解压到某个目录下,然后依次找到\assets\bin\Data\Managed\Assembly-CSharp.dll文件,拖拽到ILSpy.exe程序中即可。在游戏根目录找到Library文件夹,进入ScriptAssemblies文件夹,找到Assembly-CSharp.dll文件,拖拽到ILSpy.exe程序中即可打开。第二行标红处为DLL文件地址,找到此文件,并拖拽到刚才打开的ILSpy.exe软件中,即可查看源码。根据自己定义的命名空间找到相应的代码。原创 2022-09-06 14:29:01 · 16069 阅读 · 2 评论 -
【Unity】U3D ARPG游戏制作实例(二)人物基本动作切换
打开PlayerAnimatorController,右键点击空白处创建一个名为Idle的空白状态(Create State --> Empty),再将此状态设置为默认状态(Set as Layer Default State),通常情况下创建的第一个状态会自动被指定为默认状态,黄色状态即为默认状态。Idle和Run都需要做此操作,而Die则不需要,除非你的角色需要不停的Die。再创建Die和Run两个状态,按照下图,右键点击各个状态将动线连接到相应的状态(Make Transition)。原创 2022-09-02 13:01:07 · 2068 阅读 · 0 评论 -
【Unity】物理引擎、生命周期物理阶段、刚体、碰撞体、触发器、物理材质
Unity 可帮助您在项目中模拟物理系统,以确保对象正确加速并对碰撞、重力和各种其他力做出响应。从开发方式的角度出发,Unity提供了面向对象和面向数据两种方式。面向数据指的是Unity提供的一种新的技术栈DOTS(Data Oriented Tech Stack),而面向数据的物理引擎需要使用专用的DOTS物理包。由于此项技术栈尚不成熟,可用性很低,所以暂不考虑。面向对象内置3D物理系统(集成 NVIDIA PhysX 引擎)内置2D物理系统(集成Box2D引擎)......原创 2022-09-01 15:42:50 · 3527 阅读 · 1 评论 -
【Unity】U3D ARPG游戏制作实例(一)EasyTouch5完整示例
Unity Store中有很多Input相关插件,跟EasyTouch功能相似的也有很多,如果想要做个简单操作的手机项目可以考虑EasyTouch,如果想要在多个平台发布或者支持多种操作、复杂操作的话可以考虑另外一款插件Rewired,这款插件可以识别多种外设(手机、键鼠、手柄、方向盘、乐器等),有机会的话我会在写一片关于Rewired的文章。...原创 2022-08-25 22:38:41 · 2943 阅读 · 2 评论 -
【Unity】Unity开发进阶(七)双刃剑:扩展方法
扩展方法可以说是一把双刃剑,用好了锋利无比,用不好也有可能会自伤,但总得来说还是功大于过,特别适合具有经验的团队使用。原创 2022-07-30 23:06:50 · 2252 阅读 · 0 评论 -
【Unity】Unity开发进阶(六)UnityEvent使用与源码解析
UnityEvent其实就是Unity帮我们提前写好的用于处理事件的功能,其作用是减去了自己写委托的过程,且提高了开发的规范性,方便代码整合。更多内容请查看总目录【Unity】Unity学习笔记目录整理httpshttps。...原创 2022-07-29 16:38:37 · 9493 阅读 · 1 评论