如何在Ursina中让物体沿自身朝向方向移动?
在Ursina中实现物体向前移动
Entity.forward确实只是返回物体自身局部坐标系下的前方向单位向量,要让物体实际移动,需要将这个向量与移动速度、帧时间增量相乘后,叠加到物体的position属性上。
基础实现代码
from ursina import * app = Ursina() # 创建测试用的立方体 moving_cube = Entity(model='cube', color=color.orange, position=(0,0,0)) def update(): # 设定每秒移动的距离(速度) move_speed = 6 # 方向向量 × 速度 × 帧时间,保证移动速度不受帧率波动影响 moving_cube.position += moving_cube.forward * move_speed * time.dt app.run()
额外扩展说明
- 用
time.dt是关键:它代表上一帧到当前帧的时间差,能让物体移动速度在不同帧率下保持一致 - 如果要让物体朝着世界空间的正前方移动(忽略自身旋转方向),替换为
Vec3.forward即可 - 结合键盘输入控制移动(比如按W键才前进):
def update(): move_speed = 6 if held_keys['w']: moving_cube.position += moving_cube.forward * move_speed * time.dt
内容的提问来源于stack exchange,提问作者Simon Mendlowitz
相关产品推荐
相关产品推荐

