Ruby‘s Adventure学习笔记——发射子弹&CineMachine&粒子特效

这篇博客介绍了在Unity游戏中实现子弹发射、使用Cinemachine摄像机进行角色跟踪以及添加粒子特效的详细步骤。包括通过键盘输入创建子弹、设置子弹碰撞消失和敌人中弹反应,以及利用Cinemachine的Follow功能和Confiner限制相机移动范围。此外,还探讨了如何创建和应用粒子特效,调整其参数以达到理想效果。
摘要由CSDN通过智能技术生成

1.发射子弹

 ①效果要求:

1)按下键盘某个键位,发射子弹,播放发射子弹的动画

2)子弹撞到其他物体会消失,或者经过一段时间自动消失

3)子弹打中敌人,敌人停下,并播放被击中动画

②分析:

1)键盘输入获取,创建子弹,并具有初速度;子弹方向与角色当时朝向相同

2)子弹有碰撞时间,需要rigidbody;经历时间自动消失,需要计时器

3)敌人中弹有状态切换,需要添加开关和动画树的parameter

③知识点:

1)

 使用Input.GetKey获取特殊的案件输入,作为判断条件,创建子弹

通过Instantiate()创建子弹。注意,这里的子弹出生点是和主角的位置一样的,这样肯定会发生碰撞,导致子弹还没发射出来就因碰撞事件销毁。这里解决的方法是,通过角色和子弹的Layer属性 区别开,并在project settings->physic 2D中取消掉两个Layer之间的碰撞检测。

子弹创建之初,就应该有一个初速度,这里用了addForce()函数,给子弹的gameobject施加一个Vector2 类型的力。可以看到,这个函数是写在子弹脚本下的,这里进行了跨脚本调用。因为子弹的发射方向应与角色的面朝方向相同,所以这里直接用了之前控制静态动画切换的Vector2 类型变量LookDirection,300是速度大小。

2)子弹碰撞消失,所以有自己的碰撞事件,需要挂个脚本,用onCollitionEnter2D()函数来实现。同时脚本上也可以写一些修改子弹自身属性的函数方法

 

 3)敌人中弹和敌人碰撞角色都是触发事件,可以用collision.tag进行区分

敌人的动画播放和主角发射子弹的动画播放,都只需要在对应事件发生后修改动画书的parameter即可(注意,如果transition不写条件,则会在播放结束后自动跳转) 

2.CineMachine

CineMachine是一个Unity给的有多种功能的摄像机,是个插件,Window->Package Manager搜索下载。

 下载之后,会出现工具选项,下拉创建一个新的2D相机

 这里用到两个功能,Follow拖拽角色对象上去实现镜头跟踪。

Add Extension中可以创建其他组件对相机进行设定。这里加了一个限定摄像机移动范围的Confiner ,Bounding Shap 2D就是限定的范围,要填一个gameobject,可以新建一个空的对象,添加collider,调整collider大小,再拖进去

3.粒子特效

->右键->Effect->Particle System创建新的空粒子特效

有很多参数可以调,感觉有点偏美术的工作,调完保存为prefab,拖拽到对象上实现添加

 

 粒子特效的访问和动画类似,也是定义个对象

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值