You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:35:14