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

如何从函数获取返回值?Ursina按钮点击场景技术求解

函数返回值获取及Ursina按钮点击回调返回值处理

一、普通函数获取返回值

直接调用函数并将结果赋值给变量即可,示例:

def my_func():
    return "测试返回值"

# 获取返回值
result = my_func()
print(result)  # 输出:测试返回值

二、Ursina框架中获取按钮点击绑定函数的返回值

你原代码的问题在于:Ursina的Button组件不会自动捕获on_click回调的返回值并存储到按钮属性中,且手动监听input的左键点击逻辑会响应所有左键操作,并非仅按钮点击。以下是两种可行方案:

方案1:使用全局变量存储返回值

通过全局变量承接回调函数的返回值,在需要的地方直接访问该变量:

from ursina import *

app = Ursina()
click_result = None  # 全局变量存储返回值

def on_click():
    global click_result
    click_result = "按钮点击成功"  # 设置返回值

# 创建按钮并绑定回调
b = Button(on_click=on_click, text="点击获取返回值")
# 用于显示返回值的文本组件
status_text = Text(text="等待点击", position=(0, 0.4))

def update():
    # 实时更新显示当前返回值
    status_text.text = f"当前返回值: {click_result}"

app.run()

方案2:使用类实例变量封装(更推荐)

用类的实例变量存储返回值,避免全局变量的副作用:

from ursina import *

app = Ursina()

class ButtonClickHandler:
    def __init__(self):
        self.click_result = None
    
    def handle_click(self):
        self.click_result = "通过类实例获取的返回值"

# 创建处理实例
handler = ButtonClickHandler()
# 绑定类方法作为按钮回调
b = Button(on_click=handler.handle_click, text="点击测试")
status_text = Text(text="等待点击", position=(0, 0.4))

def update():
    status_text.text = f"当前返回值: {handler.click_result}"

app.run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:37:09