- 博客(10)
- 收藏
- 关注
原创 unity开发记录-----Space Warrior(10)Bug修复
之前,我们实现了游戏中各种枪械的功能,但大家会发现,假如按下滚轮一切枪,枪械便失去了动画与后座,只是因为在角色的脚本上始终绑定着枪械的后座脚本与动画器。而切换武器之后仍然是原枪械的动画和脚本,所以会失效。为了修复BUG,我的思路是这样的:为枪械添加一个父对象“枪套”,移除所有枪械的动画器与后座脚本,并将其移动到“枪套”上,并将枪套作为载体传递给角色控制器。玩家控制器的后座脚本与动画器引用将传递给Hoslter。更改完成时武器可能会发生位移,重新排下位置即可。枪套的层级位于Main Camera和武器之间。
2024-10-14 21:56:50 181
原创 unity开发记录-----Space Warrior(9) 添加小地图
我先讲讲思路:添加一个相机,俯拍整个游戏视图,将输出的图像作为一个可渲染材质(Rendering Texture),再将这个材质放置在ui画布中,实现小地图的制作。在为我们的游戏解决bug之前,先为我们的游戏增加一个小功能,那就是添加一般fps都会有的小地图。关闭“渲染阴影”,将输出纹理设定为新建的Rendering Texture,调整好相机的位置,使其正对角色。同时,为小队图添加遮罩和相应的ui之后,便最终实现了这一功能。再ui画布中新建raw image组件,将原图像设定为该材质。
2024-10-14 11:27:53 214
原创 unity开发记录-----Space Warrior(8)狙击枪的开镜
我们想要的效果是按一下开镜,再按一下关闭,所以新建一个布尔值,当inputAction触发之后,检查布尔值是否为true,若为false,执行开镜操作并将布尔值设为true,否则执行闭镜操作。在开镜时将图片的Active设置为True,并在摄像机的剔除遮罩中剔除weapon所在的层(我把狙击枪的layer设为了Weapon),并将视场角缩小以达到放大效果。上一期,我们为角色添加了一把狙击枪,而大多数fps游戏的狙击枪都是可以开镜的,所以这一期也要对角色的狙击枪添加开镜功能。
2024-10-11 22:07:39 336
原创 unity开发记录-----Space Warrior(7) 添加更多枪械
讲下逻辑:建立一个GameObject类型的数组,存储我们要用到的武器,绑定鼠标滚轮为切换武器的控制器,通过上下移动鼠标滚轮来切换武器。在切换武器时,先将所有武器的Active设为False,再通过滚轮的输入值确定选定武器的下标,将特定下标的武器的Active设为True。首先将手枪和狙击枪添加到场景中,附着于player下的Main Camera中,调整预制体的Transform和之前枪械一致,便于枪械动画的套用。再添加动画器组件,指定之前的动画控制器。然而,武器是增加了,怎么切换呢?
2024-10-11 13:53:50 285
原创 unity开发记录-----Space Warrior(6)
这个isReloading是干什么用的呢,我们的shoot方法是在UPDATE()中调用的,如果换弹的话,那就会同时触发很多次协程,导致换弹动作执行不正确,便添加了isReloading变量,当其为真时表示正在换弹,不要触发新的协程。当弹匣内没有子弹的时候,检查后备弹药,如果后备弹药为零,则什么也不执行,如果后备弹药不为零,则执行Reload()协程。在为武器添加了后坐力与动画之后,我们要为武器添加弹匣容量的限制以及更换弹夹的操作,首先创建三个变量,分别代表弹匣中的子弹,弹匣的最大容量,和角色的后备弹药。
2024-10-10 17:07:36 254
原创 unity开发记录-----Space Warrior(5)
我们的枪械虽然可以射击了,也可以打出音效了,但是在开火时枪械没有后座和震动,行走时武器也没有契合人物动作的动画,使游戏画面看起来不美观。为此,本节将为枪械添加动画和后座。
2024-10-06 15:57:42 486
原创 unity开发记录-----Space Warrior(4)
在为武器增加了开火功能后,是武器可以开火并在被击中的物体上施加冲击力并且留下弹孔。但是此时武器只能够半自动射击,而且没有音效,这次便将要为武器增加全自动射击功能并添加音效。
2024-10-04 16:25:52 503
原创 unity开发记录-----Space Warrior(3)
代码解析:第一个参数impactEffect为弹孔与烟雾特效,第二个参数hitInfo.point表示的是生成特效的位置,这里是被击中物体击中点的位置,第三个参数是击中点的法线方向,使特效的方向正确,第四个参数hitInfo.transform表示生成该物体的父对象,这里是被击中的物体。这段代码中,muzzle.position表示射线发射原点,muzzle.forward表示射线发射方向,hitInfo表示击中物体的信息,shootRange表示射击距离。在枪械脚本中引入并启用InputAction。
2024-10-03 22:28:41 519
原创 unity开发记录-----Space Warrior(2)
新建Player的ActionMap,再添加“Move”的Action,将ActionType改成值,将ControlType改成Vector2,点击小加号,新建上下左右控制集。添加“Look”Action,Action Type为值,Control Type为Vector2,绑定为Pointer中的Delta。上一期编写脚本时主要控制的输入为:移动,控制视角和跳跃。这次准备新的输入系统Input System,用来管理和调用,触发事件。并在项目文件夹中创建新的Input Action。
2024-09-20 11:53:27 223
原创 unity开发记录-----Space Warrior(1)
简介:space warrior是一款第一人称射击游戏,开发难度中等,涉及第一人称角色控制,枪械操作与射击,玩家信息系统,敌人ai,装备交互等。
2024-09-11 20:46:59 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人