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

Ursina FirstPersonController鼠标低速移动时rotation_X异常上移求助

Ursina FirstPersonController视角异常(Linux Mint 21下鼠标缓慢移动自动上移)

问题现象

  • 在Linux Mint 21系统中使用Ursina的FirstPersonController时,缓慢移动鼠标或触摸板,视角除跟随鼠标方向转动外,会额外沿X轴上移;无论缓慢向哪个方向移动鼠标,角色都会抬头。
  • 鼠标移动越快,问题越不明显:快速下移鼠标角色会低头,但缓慢下移时,rotation_x值下降,角色反而抬头。
  • 同一设备在Win10系统下无此异常,重装VS Code、Anaconda、Ursina均未解决。

复现代码:

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()
player = FirstPersonController()
Sky()

def input(key):
    if key == 'escape':
        quit()
        
app.run() 

解决方法

1. 调整Ursina内置视角参数

修改FirstPersonController的鼠标灵敏度或禁用视角平滑,适配Linux下的输入逻辑:

player = FirstPersonController(
    mouse_sensitivity=(15, 15),  # 降低灵敏度,可根据实际情况调整
    smooth_look=False  # 关闭视角平滑,避免输入处理异常
)

2. 修复系统输入设备设置与驱动

  • 打开系统设置的鼠标和触摸板面板,关闭以下功能:
    • 鼠标加速度
    • 触摸板自然滚动
    • 触摸板智能手势(如三指拖动、缩放)
  • 若为Synaptics触摸板,安装官方驱动并重启:
    sudo apt install xserver-xorg-input-synaptics
    sudo systemctl restart display-manager
    

3. 自定义鼠标输入控制逻辑

绕过Ursina默认的视角处理,手动实现鼠标旋转逻辑:

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()
player = FirstPersonController()
Sky()

# 关闭默认视角控制
player.look_enabled = False

def update():
    if mouse.locked:
        # 直接映射鼠标移动到视角旋转
        player.rotation_y += mouse.velocity[0] * 20
        player.camera_pivot.rotation_x -= mouse.velocity[1] * 20
        # 限制上下视角范围,防止过度旋转
        player.camera_pivot.rotation_x = clamp(player.camera_pivot.rotation_x, -90, 90)

def input(key):
    if key == 'escape':
        quit()
    if key == 'right mouse down':
        mouse.locked = True
    if key == 'right mouse up':
        mouse.locked = False
        
app.run() 

4. 切换Ursina渲染后端

尝试使用Vulkan后端(需系统支持),解决输入处理兼容性问题:

app = Ursina(backend='vulkan')

内容的提问来源于stack exchange,提问作者siriustop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:02:42