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

在Python的Ursina框架中如何更新Text实体的文本内容?

解决Ursina中TIME文本不动态更新的问题

1. 补充缺失的time模块导入

你的代码未导入time模块,会导致time.strftime调用失败,Ursina默认不会抛出明显报错,进而让文本更新逻辑无法执行。需要在代码开头添加:

import time
from ursina import Text, Ursina

2. 确保完成实例化与应用启动

你需要创建TIME类的实例,并且启动Ursina的主循环,否则组件不会被加载到场景中,update方法也不会被触发。完整可运行代码示例:

import time
from ursina import Text, Ursina

BUTTON_INDENT = -1

class TIME(Text):
    def __init__(self):
        super().__init__(
            text=time.strftime("%H:%M"),
            position=(0, 0, BUTTON_INDENT)
        )

    def update(self):
        self.text = time.strftime("%H:%M")

if __name__ == "__main__":
    app = Ursina()
    # 实例化时间显示组件
    time_display = TIME()
    app.run()

3. 可选:优化更新频率(减少不必要的计算)

当前代码每帧都会调用时间格式化函数,实际上每分钟更新一次就足够。可以添加计时器逻辑优化性能:

import time
from ursina import Text, Ursina

BUTTON_INDENT = -1

class TIME(Text):
    def __init__(self):
        super().__init__(
            text=time.strftime("%H:%M"),
            position=(0, 0, BUTTON_INDENT)
        )
        # 记录上次更新的分钟数
        self.last_minute = time.localtime().tm_min

    def update(self):
        current_minute = time.localtime().tm_min
        if current_minute != self.last_minute:
            self.text = time.strftime("%H:%M")
            self.last_minute = current_minute

if __name__ == "__main__":
    app = Ursina()
    time_display = TIME()
    app.run()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:40:33