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

如何在Ursina的WindowPanel窗口面板中更新文本实体内容?

问题核心原因

  1. 函数内部修改全局变量score未加global声明,实际修改的是函数内的局部变量,全局score值根本没有更新
  2. 初始化WindowPanel的Text组件时,直接将初始score值转为字符串拼接成了静态文本,后续score变化不会自动同步到面板的文本内容,需要主动修改Text组件的text属性才能更新显示。

修复步骤

  • 提前将显示得分的Text组件单独赋值给变量,方便后续调用修改
  • 在challenge函数内添加global score声明,确保修改的是全局计分变量
  • 得分更新后主动重新赋值Text组件的text属性,同步最新得分到面板

修复后可运行代码

from ursina import *

score = 0
# 单独定义计分文本组件,后续直接修改这个对象的text属性
score_text = Text(f'当前得分: {score}')

def challenge():
    global score  # 声明要修改全局变量score
    score += 2
    # 主动更新文本内容为最新得分
    score_text.text = f'当前得分: {score}'
    wp.enabled = True

app = Ursina()

# 单元素元组需要加逗号避免语法解析错误
wp = WindowPanel(content=(score_text,), popup=True, enabled=False)

start = Button(parent=scene, text='start', on_click=challenge)

app.run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:24:06