步骤2:创建子弹对象 - 子弹脚本
-
创建一个新的脚本。点击场景窗口上方的
图标来创建新脚本。

-
确认语言为VisualScript,然后为其指定任意名称并创建。
-
将第一个节点重命名为Move,并启用“不受重力影响”选项。
-
通过Actions > +Add Executable Action添加执行动作“攻击设置”。指定命中组,仅设置为Enemy。这样可以避免攻击误伤玩家。
-
接着,通过添加状态创建新状态,并将其命名为Remove。同样启用“不受重力影响”选项。
-
在Remove状态中添加执行动作“删除自身(RemoveSelf)”。此操作用于将对象从游戏中移除。像子弹和敌人这样的对象,如果在完成任务后不将其移除,它们将一直存在,从而占用资源,因此务必进行移除。
-
最后,右键点击Move并创建链接,将其连接到Remove。
-
设置三个移除条件。第一个条件是“命中敌人”。通过检查器,进入Conditions > Add Condition,添加“碰撞检测与接触(ContactWithHitArea)”。由于希望无论来自哪个方向都能判定,因此判定方向设为全部,目标组设为Enemy。
-
设置第二个条件。使用相同步骤添加“屏幕外(Offscreen)”。目标类型设为当前节点,与前一条件的逻辑关系设为OR。如果保持为AND,则必须同时满足两个条件才能进行状态转移。
-
设置第三个条件。使用相同步骤添加“与图块接触(ContactWithTile)”。同样,由于希望无论来自哪个方向都能判定,因此判定方向设为全部。与前一条件的逻辑关系设为OR。
-
至此,对象将满足以下任一条件时被删除:与敌组命中、离开屏幕范围或与图块接触。
提示
关于删除(Remove)与恢复删除(RestoreRemove)、禁用(Disable)与启用(Enable)动作的区别
您可能已经注意到这些条件相似,下面将说明它们的使用区别。
删除(Remove)顾名思义,是将对象从游戏中完全移除,适用于无需复用的对象。虽然可以执行复活(RestoreRemove),但实际上会重新生成对象,因此之前的状态会被重置。
禁用(Disable)仅使对象暂时停止运行,并不会将其从游戏中移除。因此,通过启用(Enable)可以使其恢复到原始状态。这很方便,但处于Disable状态的对象仍会消耗资源,因此对于不再计划复用的对象,建议将其删除(Remove)以确保安全。
设置消失动画时的配置
本次示例未设置动画,因此对象会立即消失。但如果为Remove动作设置了动画,对象会在动画播放前就消失。
如需设置动画,建议在Remove和Move之间添加一个用于命中的状态。
当满足命中条件时,对象将转移到命中状态并播放动画。然后,通过“动画已结束”条件或“经过指定秒数”条件,再转移到Remove状态,即可实现先播放动画再移除的效果。









