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

GDScript如何将PropertyUsageFlags数值转换为标志列表?

解决方法

原生枚举PropertyUsageFlags是引擎内置类型,不支持自定义枚举的values()、find_key()这类字典式方法,你可以用Godot的反射API动态获取枚举信息,不用手动维护枚举副本,代码修改如下:

func get_usage_flags(prop : Dictionary):
    var usage : int = prop.usage
    var flags = []
    # 获取PropertyUsageFlags的所有常量名
    var enum_constants = Engine.get_enum_constants("PropertyUsageFlags")
    
    for constant_name in enum_constants:
        # 获取常量对应的数值
        var flag_value = GDScript.global_get(constant_name)
        # 按位与判断是否包含该标志
        if usage & flag_value:
            flags.append(constant_name)
    
    return " | ".join(flags)

说明

  • Engine.get_enum_constants("PropertyUsageFlags")会返回该枚举所有常量的名称列表(比如["PROPERTY_USAGE_DEFAULT", "PROPERTY_USAGE_EDITOR"]等)
  • GDScript.global_get(constant_name)可以获取全局枚举常量对应的整数值
  • 这种方式完全依赖引擎内置API,Godot版本更新时枚举有变动也能自动适配,不用手动修改代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:15:02