0 上一期我们处理完了飞机和子弹之间的碰撞逻辑,本期我们将要实现玩家飞机拾取子弹道具后飞机发射不同子弹的功能。
设置玩家飞机与道具的碰撞检测。
(资料图)
制作子弹道具节点。
玩家飞机获取道具后将提升子弹威力。
设置玩家飞机与道具的碰撞检测。
在碰撞矩阵设置面板中添加一行子弹道具的碰撞组:BULLET_PROP,子弹道具可以与玩家飞机发生碰撞。
制作子弹道具节点。
在Asset中找到子弹道具的贴图资源fightIconBullet01、fightIconBullet02和fightIconBullet03。将三个贴图的资源挂到材质BulletH、BulletS和BulletM上。
制作好子弹道具的材质之后,需要把材质挂到子弹道具的节点上。节点的类型我们选择Quad。
绑定好材质贴图后,我们在节点上添加碰撞盒,碰撞盒类型设置为BULLET_PROP。
创建道具脚本bullet_,并将脚本也绑到节点上。
玩家飞机获取道具后将提升子弹威力。
使用定时器在game_manager中随机创建3中类型的子弹道具。
道具对象实例化出来之后,我们将在子弹道具脚本bullet_prop中把道具的运动轨迹设置为从屏幕顶部S型下落。设置监听碰撞回调函数,当玩家飞机碰撞到了不同类型的道具,回调函数就会将道具类型的信息传递给game_manager。
game_manager接收到了玩家飞机碰撞的道具类型信息后,当玩家再次发射子弹时便可根据此时的道具类型调整相应的玩家子弹生成方案。
当玩家的子弹发生方案发生改变后,Bullet脚本会根据不同的子弹方案设置不同的运动轨迹。
编译运行游戏,可看到效果。
(1)H型子弹道具获取后的效果:
(2)M型子弹道具获取后的效果:
(3)S型子弹道具获取后的效果: