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

如何在Python Ursina Engine中沿Z轴拖拽3D对象?

解决3D Wood对象无法沿Z轴拖拽的问题

问题描述

无法沿Z轴拖拽我的3D WOOD对象,尝试编写了如下代码,但该对象仅能沿X轴和Y轴移动:

class Wood(Draggable):
    def __init__(self):
        super().__init__(
            parent='scene',
            model='wood'
            # 其他参数
        )

解决方案

多数3D或GUI框架的Draggable类默认仅开启XY平面的拖拽支持,要实现Z轴拖拽,需要显式配置或自定义逻辑:

  • 开启框架内置的Z轴拖拽参数
    检查你使用的框架文档,在Draggable初始化时添加开启Z轴拖拽的参数,常见参数名如allow_z=True、drag_axes='xyz'或three_dimensional=True。修改后的代码示例:

    class Wood(Draggable):
        def __init__(self):
            super().__init__(
                parent='scene',
                model='wood',
                allow_z=True,  # 显式开启Z轴拖拽支持
                # 其他参数
            )
    
  • 自定义Z轴拖拽逻辑(无内置参数时)
    如果框架未提供现成参数,可重写拖拽相关方法,结合输入事件(如鼠标滚轮、特定按键配合拖拽)来更新对象的Z坐标:

    class Wood(Draggable):
        def __init__(self):
            super().__init__(
                parent='scene',
                model='wood'
                # 其他参数
            )
        
        def on_drag(self, touch):
            # 保留原有XY轴拖拽逻辑
            super().on_drag(touch)
            # 添加Z轴调整逻辑,示例:通过鼠标滚轮控制Z值
            if hasattr(touch, 'scroll_y'):
                self.z += touch.scroll_y * 0.1  # 0.1为缩放因子,可按需调整
    

内容的提问来源于stack exchange,提问作者Мирончук Максим

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:30:51