自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(267)
  • 收藏
  • 关注

原创 Unity相关blog声明

经人提醒,还是有必要声明一下,我的Unity相关blog目前都是自己跟着唐老狮(是“狮”不是“师“)的视频学习做的相关笔记,仅仅只是为了方便自己学习,所以一些注解写的都是【我自己能看懂就行】的程度,我一个菜鸡而已其中也不存在推销什么的利益关系,因此不会加入相关链接什么的(但还是要说老师讲课的确很nice),如果想学的更清楚请自行去搜索相关视频,若有任何侵权请麻烦告知,谢谢!...

2022-04-12 22:47:52 731

原创 导航网格动态障碍组件

在游戏中常常会有这样的一个功能:场景中有一道门,如果这道门没有被破坏是不能自动导航到门后场景的,只有当这道门被破坏了,才可以通过此处前往下一场景,而类似这样的物体本身是不需要进行寻路的所以没有必要为它添加NavMeshAgent脚本,这时就会使用动态障碍组件实现该功能。为需要进行动态阻挡的对象添加NavMeshObstacle组件。代码逻辑控制其的移动或者显隐。

2023-02-19 23:49:29 237 1

原创 网格外连接组件

我们在烘焙地形数据的时候,可以生成网格外连接,但是它是满足条件的都会生成,而且是要在编辑模式下生成。如果我们只希望两个未连接的平面之间只有有限条连接路径可以跳跃过去,并且运行时可以动态添加,就可以使用网格外连接组件。使用两个对象作为两个平面之间的连接点(起点和终点)添加Off Mesh Link脚本进行关联。

2023-02-19 23:42:58 163

原创 导航网格寻路组件

寻路组件的作用就是帮助角色可以在地形上准确的移动起来,本质就是根据烘焙出的寻路网格信息,通过基于A星寻路的算法计算出行进路径让我们在该路径上移动起来。导航网格寻路组件——Nav Mesh Agent(导航网格代理人)

2023-02-19 23:36:42 269

原创 导航寻路系统

Unity中的导航寻路系统是能够让我们在游戏世界当中,让角色能够从一个起点准确的到达另一个终点,并且能够自动避开两个点之间的障碍物选择最近最合理的路径进行前往,Unity中的导航寻路系统的本质,就是在。导航网格(NavMesh)的生成——要想角色能够在场景中自动寻路产生行进路径,那么必须得先有场景地形数据,导航网格生成就是生成用于寻路的地形数据。导航网格动态障碍物组件(NavMesh Obstacle)——地形中可能存在的可以移动或动态销毁的障碍物需要挂载的组件。的基础上进行了拓展和优化。

2023-02-16 23:47:52 223

原创 角色控制器

角色控制器是让角色可以受制于碰撞,但是不会被刚体所牵制,如果我们对角色使用刚体判断碰撞,可能会出现一些奇怪的表现,比如:在斜坡上往下滑动不加约束的情况碰撞可能让自己被撞飞等等。而角色控制器会让角色表现的更加稳定,Unity提供了角色控制器脚本专门用于控制角色注意:添加角色控制器后,不用再添加刚体,能检测碰撞函数、触发器函数、能被射线检测。

2023-02-16 23:44:06 158

原创 Unity UI合批的问题

今天看到一个问题,主要说的是Unity中的UI资源合批的问题之前一直以为主要和UI资源在Hierarchy中的排列顺序有关,但其实这并不是最主要的,因为Unity会对同一个Canvas下的UI进行排序(注:不同Canvas下的资源是不能够合批的)而合批的关键就是这个【排序】先简单来说,排序主要根据三个键值:Depth、Material Id、Texture Id。

2023-02-11 16:55:25 804

原创 状态机行为脚本 & 状态机复用

游戏开发时经常遇到这样的情况,有n个玩家和n个怪物,他们的动画状态机行为都是一致的,只是对应的动作不同而已,这时如果我们为他们每一个对象都创建一个状态机进行状态设置和过渡设置无疑是浪费时间的。简单解释就是为Animator Controller状态机窗口中的某一个状态添加一个脚本,利用这个脚本我们可以做一些特殊功能。状态机行为脚本时一类特殊的脚本,继承指定的基类,它主要用于关联到状态机中的状态矩形上。子状态机退出时调用,最后一个Update中调用。子状态机进入时调用,第一个Update中调用。

2023-02-05 17:45:20 519

原创 动画目标匹配

动画目标匹配主要指的是:当游戏中角色要以某种动作移动,该动作播放完毕后,人物的手或者脚必须落在某一个地方比如:角色需要跳过踏脚石或者跳跃并抓住房梁那么这时我们就需要动作目标匹配来达到想要的效果Unity中的Animator提供了对应的函数来完成该功能使用步骤是。

2023-02-05 17:36:59 325

原创 子状态机 & 动画IK控制

子状态机顾名思义就是在状态机里还有一个状态机,它的主要作用就是某一个状态时由多个动作状态组合而成的复杂状态,比如某一个技能它是由3段动作组合而成的,蹲下,开火,站起,当我们释放这个技能时会连续播放这3个动作,那么我们完全可以把他们放到一个子状态机中。

2023-02-05 16:39:48 507

原创 1D/2D动画混合

在Animator Controller窗口 右键->Create State->From New Blend Tree。可以理解是高级版的动画过渡,之前的动画过渡是处理。往混合树里面加入动作时需要找到动画文件进行关联。1D混合就是通过一个参数来混合子运动。

2023-01-02 22:04:22 639

原创 动画分层与遮罩

3D游戏中我们常常会面对这样的需求,人物站立时会有开枪动作,人物跑动时会有开枪动作,人物蹲下时会有开枪动作,从表现上来看光是开枪动作可能就有3种,如果要让美术同学做3种开枪动作费时又费资源。:在游戏中会有这样的需求,人物健康状态时播放正常动画,人物非健康状态时播放特殊动画,比如血量低于一定界限,人物的大部分动作将表现为虚弱状态,我们可以利用动画分层来快速实现这样的功能。

2023-01-02 20:58:58 278

原创 Unity 3D动画

Has Exit Time是否启用 如果希望瞬间切换动画不需过多等待,取消该选项Can Transition To self是否启用 如果希望自己不要打断自己,取消该选项。

2023-01-02 20:47:35 219

原创 Model Animation动画页签

当我们选中包含动画剪辑的的模型时,该页签将显示动画设置相关的内容。动画剪辑是Unity动画的最小构成元素,代表一个单独的动作。当美术同学做好动画导出时建议将模型和动画文件分别导出。具体的导出规则可以参考。

2023-01-02 13:40:29 287

原创 Unity模型

当他们制作完模型后,虽然Unity支持很多模型格式,但是官方建议是将模型在建模软件中导出为FBX格式后再使用。大部分模型都不是在Unity中制作的,都是美术人员在建模软件中制作,如 3DMax、Maya等等。在Project窗口选中导入的模型,在Inspector窗口进行相关设置,4个页签分别是。Unity支持很多模型格式,比如:.fbx,.dae,.3ds,.dxf,.obj等等。通过这4个页签对模型动作相关信息设置完成后,之后我们才能在场景中更好的使用这些模型资源。美术同学在导出模型时需要注意。

2022-12-29 22:54:18 2991 1

原创 同一图片的资源换装

换装较少的游戏 比如只有面部表情更换 可以使用同一psb文件方案换装较多的游戏 比如各部位有n种装备 可以使用不同psb文件方案不同psb文件 拓展性更强。

2022-12-27 21:52:32 651

原创 反向动力学IK

在骨骼动画中,构建骨骼的方法被称为正向动力学,它的表现形式是,子骨骼(关节)的位置根据父骨骼(关节)的旋转而改变,用我们人体举例子:当我们抬起手臂时,是肩部关节带动的整个手臂的运动,用父子骨骼理解的话就是父带动了子。IK全称是Inverse Kinematics,翻译过来的意思就是反向动力学的意思,它和正向动力学恰恰相反它的表现形式是,子骨骼(关节)末端的位置改变会带动自己以及自己的父骨骼(关节)旋转。

2022-12-12 23:53:09 456

原创 psb图片骨骼编辑

由于在PSB文件是分层的,因此在实际导出后,可以不用我们去手动拼凑各个部分的图片,而是直接显示的完整个体,同时各个部分的层级也是自动设置好了的,而且骨骼编辑界面右侧是各个部分,之后的骨骼动画制作与之前基本一致。PSD和PSB两种格式并没有太大的区别,最大的区别是PSD格式兼容除PS以外的其它一些软件,而PSB只能用PS打开,在Unity中官方建议使用psb格式。PSB文件是由PS导出的图片格式,在游戏行业中也是美术同学使用最多的图像处理软件之一。

2022-12-08 23:55:42 803

原创 骨骼动画——2D Animation

传统的序列帧动画为了达到好的动画效果,理论上来说,图片越多,动作越流畅,往往需要较多的美术资源,虽然效果好但是资源占用较多而2D骨骼动画是利用3D骨骼动画的制作原理进行制作的,将一张2D图片分割成n个部位,为每个部位绑上骨骼,控制骨骼旋转移动,达到用最少的2D美术资源做出流畅的2D动画效果(用性能换内存)主要方式有两种导入工具后 在Sprite Editor窗口会多一个选项 Skinning Editor,主要步骤是:当动画对象的各个部位没有绘制在一起,而是通过图集表示时(例如一个人,头身手脚都是分开绘制的

2022-12-07 00:36:19 1621

原创 Animator动画状态机

有限状态机(Finite - state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。在每一个动画状态播放完毕后,如果没有设置切换条件,会自动跳转到连线相关联的另一个动画状态。在左侧面板点击参数页签可以在这里添加4中类型的切换条件。我们每天都会在这些状态中切换,而且这些状态虽然多但是是有限的。当达到某种条件时,我们就会在这些状态中进行切换。有限:表示是有限度的不是无限的。而且这种切换时随时可能发生的。状态:指所拥有的所有状态。

2022-11-29 23:54:30 781

原创 Animation

Animation窗口 直译就是动画窗口,它主要用于在Unity内部创建和修改动画,所有在场景中的对象都可以通过Animation窗口为其制作动画。每一个动画文件都有自己的一个生命周期,从动画开始到结束,我们可以在动画时间轴上编辑每一个动画生命周期中变化。在创建动画之前为对象添加Animation组件之后再制作动画,这时制作出的动画和之前的动画格式是有区别的。播放动画时:将制作动画时记录的数据在固定时间点进行改变,产生动画效果。制作动画时:记录在固定时间点对象挂载的脚本的变量变化。

2022-11-27 23:33:09 797

原创 Tilemap瓦片资源

Tilemap一般称之为 瓦片地图或者平铺地图,是Unity2017中新增的功能,主要用于快速编辑2D游戏中的场景,通过复用资源的形式提升地图多样性。方法二:在Tile Palette瓦片调色板窗口创建:Window——>2D——>Tile Palatte。它和SpriteShape都是用于制作2D游戏的场景或地图的,但不同点的是。使用时需要从PackageManager中引入Tilemap包。方法一:Assets——> Create——> Tile。工作原理就是用一张张的小图排列组合为一张大地图。

2022-11-19 17:26:33 1038

原创 SpriteShapeProfile

通过 Create——>Sprite Shape Profile来创建对应的资源,使用时直接将该资源拖入 Hierarchy 窗口即可。SpriteShapeProfile 主要是方便我们以节约美术资源为前提,制作2D游戏场景地形或者背景。

2022-11-13 22:41:20 798

原创 2D物理系统——效应器

注意:效应器需要碰撞器打开 Used By Effector 开关,而 Is Trigger 不是必须要打开的(平面效应器和表面效应器不用打开),具体看提示就行。2D效应器是配合2D碰撞器一起使用,可以让游戏对象在相互接触时产生一些特殊的物理作用力。可以通过2D效应器快捷的实现一些传送带、互斥、吸引、漂浮、单向碰撞等效果。

2022-11-13 18:16:58 507

原创 2D物理系统——物理材质 & 恒定力

用于决定在物体产生碰撞时这些物体之间的的摩擦和弹性表现,通过物理材质我们可以做出类似 斜坡不滑落、小球反弹等效果。可以通过右键 Create——> Physical Materail 2D 进行材质的创建。恒定力是一个特殊的脚本,它可以给2D刚体持续添加一个力,在做一些随着时间推移而加速的对象时很适用,比如火箭发射等效果。恒定力脚本会线性的为对象添加力和扭矩力,让其移动和旋转。

2022-11-13 17:02:08 427

原创 2D物理系统——碰撞器

碰撞器是用于在物理系统中表示物体体积的形状或范围,刚体通过得到碰撞器的范围信息进行计算,判断两个物体的范围是否接触,如果接触刚体就会模拟力的效果产生速度和旋转。2D碰撞检测函数和3D碰撞检测函数除了名字不同外其他基本一致。

2022-11-13 16:26:25 329

原创 2D物理系统——刚体

刚体是物理系统中用于帮助我们进行模拟物理碰撞中力的效果的,2D物理系统中的刚体和3D中的刚体基本是一样的,最大的区别是对象只会在XY平面中移动,并且只在垂直于该平面的轴上旋转。基本和3D刚体的API类似。

2022-11-13 15:31:25 240

原创 SpriteAtlas

在project面板中,可以通过右键 Create——> Sprite Atlas 来创建图集资源,在 Objects for Packing中添加需要打入图集的资源,其中可以是单个文件,也可以是一个文件夹,然后通过Pack Preview打图集。padding power:选择打包算法在计算打包的精灵之间以及精灵与生成的图集边缘之间的间隔距离,这里的数字 代表2的n次方。表示传统打包模式 相对下面两种模式来说 多了一个设置图片之间的间隔距离——在工程设置面板中打开功能。

2022-11-12 23:37:09 443

原创 Sprite Creator & Sprite Mask

主要思路是:对要放大的物体,比如A,叠放一个它的放大版,然后在SpriteRenderer中的Mast Interaction设置为 None,一个设置为 Visible Inside Mask,然后对放大镜区域,如果有需要,通过Sprite Creator创建一个圆形的图,赋值给 SpriteMask 的 Sprite,这样在该范围内,显示的是A的放大版,其余时候显示的是正常的A。SpriteMask的主要作用就是对精灵图片产生遮罩,制作一些特殊的功能,比如只显示图片的一部分让玩家看到。

2022-11-12 17:43:42 429

原创 Sprite Renderer

Sprite Renderer是精灵渲染器,所有2D游戏中游戏资源(除UI外)都是通过Sprite Renderer让我们看到的。

2022-11-12 16:46:50 1100

原创 Sprite Editor

自定义边缘线设置,可以自定义精灵网格的轮廓形状,默认情况下不修改都是在矩形网格上渲染, 边缘外部透明区域会被渲染,浪费性能,使用自定义轮廓,可以调小透明区域,提高性能。当我们的图片资源是图集时,我们需要在设置时将模式设置为Multiple,这时我们可以使用Sprite Editor自带的功能进行图集元素分割。次要纹理设置,可以将其它纹理和该精灵图片关联,着色器可以得到这些辅助纹理然后用于做一些效果处理,让精灵应用其它效果。基础图片设置(右下角窗口),主要用于设置单张图片的基础属性。

2022-11-12 15:37:42 1678

原创 纹理类型设置

纹理不仅可以用于模型贴图,还可以用于制作天空盒和反射探针,纹理形状的设置,主要就是用于在两种模式之间进行切换。设置纹理类型主要是为了让纹理图片有不同的主要用途,指明其是用于哪项工作的纹理。

2022-11-08 00:05:15 330

原创 Unity的MVC

主要应用在UI系统的开发上,将Panel的逻辑划分为三块:数据、界面、业务逻辑。模型(Model)-视图(view)-控制器(controller)好处是:降低耦合,方便修改,逻辑更清晰。缺点是:脚本太多,体量变大,流程变复杂。

2022-11-06 22:15:14 439

原创 Unity 图片相关

Windows支持的标准图片格式,特点是几乎不进行压缩,占磁盘空间大。其中Unity最常用的图片格式是:JPG、PNG、TGA三种格式。其他还支持:EXR、GIF、HDR、IFF、PICT等等。纹理类型、纹理形状、高级设置、平铺拉伸、平台设置、预览窗口。之后对这六部分进行学习~

2022-11-06 22:11:43 1571

原创 音效管理模块

【代码】音效管理模块。

2022-10-21 00:38:00 270

原创 输入控制模块

然后对输入操作进行事件注册,在Update中一旦进行相应操作,就进行事件分发,执行自己相应的按键逻辑。通过公共Mono模块,让输入模块的Update能够每一帧运行。

2022-10-20 23:20:02 132

原创 资源加载模块

【代码】资源加载模块。

2022-10-19 23:59:00 95

原创 场景切换模块

从场景A切换到场景B时,通过配置文件去加载场景上的物件,通过玩家信息去动态的创建玩家。

2022-10-19 23:12:25 134

原创 公共Mono模块

【代码】公共Mono模块。

2022-10-19 22:56:13 319 2

原创 事件中心模块

假设怪物死亡后,需要做三件事:player得到奖励,更新任务记录,其他包括成就系统、刷新怪物等待,有前后联系,最简单的方法就是找到脚本挂在的对象,然后得到脚本,最后调用脚本中的函数,但这样会让程序的耦合性太强,因此换一个做法,当怪物死亡的时候不和其他方法直接进行关联,而是通知事件中心派发一个事件,将该事件关联的行为(即监听 )进行调用。

2022-10-19 00:03:07 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除