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

Godot中TextureButton设置texture报错:Invalid set index 'texture'

问题解决:Invalid set index 'texture' on TextureButton

错误原因

你遇到的错误核心是TextureButton不存在texture这个属性。TextureButton继承自BaseButton,它的纹理是按交互状态(正常、悬停、按下等)单独配置的,和普通Sprite节点的texture属性逻辑不同。

修复代码

修改ITEM_SPRITE.gd中的setItem函数,将self.texture替换为对应状态的纹理属性,最常用的是texture_normal(设置按钮正常状态下的纹理):

tool
extends TextureButton

export(Resource) var item setget setItem

onready var labelText = $RichTextLabel


func addQuant(addedQuant :int):
    item.addQuant(addedQuant)


func setItem(newItem : Resource):
    item = newItem
    
    # 替换为texture_normal
    self.texture_normal = item.getTexture()
    labelText.text = str(newItem.getHover()) 

额外优化与排查

  1. 空值防护:避免item或纹理为空时报错,可添加判断逻辑:
    func setItem(newItem : Resource):
        if not newItem:
            return
        item = newItem
        
        if item.getTexture():
            self.texture_normal = item.getTexture()
        labelText.text = str(newItem.getHover()) 
    
  2. 多状态纹理配置:如果需要按钮在悬停、按下时显示不同效果,可对应设置texture_hover、texture_pressed等属性。
  3. 导出变量无需修改:你的ITEM类中export(Texture)的写法完全正确,不需要改成StreamTexture,Godot会自动处理纹理类型的适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 15:05:36