转动物体指向某个目标点
-
介绍
将一个新的物体(例如飞机)被添加到 3D 场景时,其默认面向方向是正 Y 方向。你可以通过以下积木指定目标点,让物体指向那个目标点的方向:
这个积木有 5 个输入参数:
- X/Y/Z 位置:这是目标点的位置。
- 用时:这是物体转到新方向所需的时间。如果为0,则物体会立即转动过去;否则,它将在这段时间内逐渐向新方向旋转。
- 是否等待:当“用时”不为0秒时,这个参数控制该积木是否阻塞下一个积木的执行。如果为“需等待的”,那么程序将不会继续,直到物体完成旋转;否则程序将继续执行下一个积木,同时保持物体继续进行旋转。
示例
在这个示例程序中,我们先添加一个飞机模型,然后通过一段时长为 2 秒的动画使其指向目标点 x = 100,y = 100,z = 20。
注意,目标位置只影响相对于物体位置的旋转方向。在上面这个例子中,如果我们使用 (10, 10, 2) 作为目标位置,我们会得到相同的旋转结果,因为物体位于 (0, 0, 0) 的位置。
使用父节点 + 指向位置(高级)
当我们使用“指向位置”积木时,有的时候可能得不到想要的结果,因为旋转物体的方法有很多种。
例如,当我们旋转飞机指向 (100, 100, 100) 的位置时,飞机的机身会围绕自身“侧滚”,因此左翼会比右翼倾斜得更高:
为了更好地控制物体的旋转方式,我们可以使用父节点辅助完成部分甚至全部旋转。例如,你可以使用一个转换器物体“t”作为飞机的父节点。然后使用“指向位置”积木让飞机慢慢抬头,并让父节点 t 绕 Z 轴向右旋转。这样 2 个机翼将处于相对水平位置。你还可以把第一个动画设置为“可继续的”,以便让两个动画同时运行:
-