创建一个名为 EnemyController 的新脚本,并将这个脚本附加到敌人角色。现在,让我们编写一个脚本来使让敌人循环上下移动。
你应该已经从前面的所有教程中充分学习到了此过程所需的知识,因此你可以自己尝试编写这个脚本,然后再查看答案。以下是一些重要的提醒信息:
注意:返回到 Unity 并编译此脚本之后,控制台中会显示一条警告:
“warning CS0108: 'EnemyController.rigidbody2D' hides inherited member 'Component.rigidbody2D'.”
这是因为 Monobehaviour(你用于脚本的基类)有一个(现在未使用)成员也名为 rigidbody2d。
Unity 的这条信息表示你的 rigidbody2d 将取代该同名的成员,但这就是你想要的结果并且很有用,因此你可以忽略这条警告,一切都是正常的!
现在,让我们更改脚本,以便你可以在编辑器内以水平或垂直方向来回移动敌人。
对于方向,让我们使用名为 vertical 的公共 bool 变量。你可以在 Update 中进行测试以查看 vertical 是否为 true。如果为 true,则在你的世界中将敌人沿着 y 轴(而不是 x 轴)移动。
对于来回移动,你需要计时器(就像你用于无敌状态的计时器一样)。
只要你的计时器不为零,你就可以使敌人向一个方向前进,然后反转方向并重置计时器,依此无限执行这一循环过程。
你现在已设置新变量,接下来可以将 EnemyController 函数更改为:
在 Start 函数中,你可以将计时器初始化为反转敌人方向之前的时间。
在 Update 中,你将计时器递减,然后进行测试以查看计时器是否小于 0,如果小于 0,则可以更改方向并重置计时器。由于这与物理无关,因此不必在 FixedUpdate 中执行此操作。
最后,可以将 speed 乘以 direction。