教程:脚本课程#1 尝试制作射击攻击。

步骤3:为角色设置子弹和枪械

  1. 返回到 Object_Sampleplayer 标签页。

  2. 点击场景画面左上角的“添加节点”按钮。

  3. 添加 Node > AGMaker 中的 BulletSettings 节点。这是用于管理发射子弹的节点。

  4. BulletSettings 应设置为发射子弹的侧对象

  5. 展开 BulletDataList → 添加子弹(+Add Bullet)→ <空> → NewBulletData,创建新的子弹数据。

  6. 进行子弹的基本设置。展开 BulletData > Bullet Base Settings,并按如下方式选择:
    名称:请输入任意名称,此处设为 Sample_Bullet。
    对象路径:请指定刚才创建的 sample_bullet。*请注意,如果之后移动 sample_bullet.tscn 的位置,引用将失效导致无法运行。
    无限子弹:开启 *关于此项,稍后将进行说明。

  7. 接下来设置初始行为。展开 Initial Behavior,将初始行为设置为“沿对象显示方向发射 (FireObjectDirection)”。

  8. 至此,子弹设置已完成。现在可以通过发射动作让 sample_bullet 沿显示方向发射。接下来为角色装备枪械。

  9. 选择 AnimationPlayer,选择并播放 044_Gun_Aim 动画。将播放射击动画……但角色仍然是徒手状态。

  10. 枪械图片已包含在随附文件中,位于文件系统的 templates > objects > weapons > P_other 目录下的 W_005_gun.png,请使用它。将其装备到左手骨骼上似乎效果不错。

  11. 返回场景窗口,选择 BoneAnimationRoot2d > Skeleton > B_Chest > B_Joint_L > B_Arm_L > B_Hand_L > B_Weapon_L。

  12. 选中 B_Weapon_L 后,将文件系统中的 W_005_gun.png 拖拽至手部附近,按住 Shift 键并释放

  13. 按住 Shift 键拖拽会使该文件成为所选节点的子节点,因此 W005Gun 应作为 B_Weapon_L 的子节点被添加。如果未成功,请手动调整。

  14. 虽然已放置,但角度似乎有些奇怪,需要修正。选中 W005Gun,调整 Node2d > Transform 中的位置 (Position) 和角度 (Rotation)。
    大致设置为 x:12, y:21, Rotation:156.4 左右即可使其看起来正常。
    另外,关于为何在 0 度时仍出现倾斜,是因为父级骨骼的角度已通过动画设定为倾斜状态。

  15. 播放动画确认运行是否正常。如果没有问题,接下来设置发射点即枪口。

  16. 发射点使用名为 Connector 的节点。此示例角色中已存在一个名为 Connector - gun fire 的节点,但它似乎位于脚部,因此需要调整。将其位置与枪械图形对齐,移动到枪口附近。

  17. 至此,子弹、枪械和枪口的设置已完成。

子弹各项设置说明

基本设置
发射数量 (Shot Count):一次动作发射的次数。可用于实现连射或霰弹枪效果,但请注意,如果在发射过程中状态发生切换,发射可能会中途终止。
发射间隔 (Fire Interval):与发射数量配合使用,表示发射间隔。将此数值设为 0.3 秒,则每 0.3 秒发射一发子弹;设为 0 秒则实现同时发射。
子弹显示数量限制 (Shit Limit):屏幕上可显示子弹的上限数量。如果设为 1,则在已有子弹消失前无法再次发射。
初始行为
初始行为 (Initial Behavior):指定发射出的子弹如何移动。如果子弹侧已设置移动脚本,则优先执行子弹侧的脚本。
扩大发射范围 (Spread Range):指定子弹的扩散范围。
指定运动方式 (Spread Type):指定子弹的扩散方式。固定模式则在发射角度内等间隔发射;雨刷模式则在发射角度内上下移动发射;随机模式则在发射角度内随机扩散。
飞行中行为
飞行中行为 (In-flight Behavior):可指定锁定目标后的追踪或回旋镖轨迹等。如果子弹侧已设置移动脚本,则优先执行子弹侧的脚本。