Godot中如何通过_get_property_list导出纹理类型变量?
解答
不存在TYPE_TEXTURE这个TYPE_常量,所有继承自Object的类型——包括Texture、Material这类资源,以及节点、自定义脚本类——基础类型统一填TYPE_OBJECT,再通过属性提示指定具体类型即可。
你代码里的纹理属性修正后写法:
func _get_property_list(): var properties = [] properties.append({ name = "Other", type = TYPE_NIL, hint_string = "other_", usage = PROPERTY_USAGE_GROUP | PROPERTY_USAGE_SCRIPT_VARIABLE }) # 分组下的属性示例 properties.append({ name = "other_height", type = TYPE_REAL }) properties.append({ name = "other_texture", type = TYPE_OBJECT, hint = PROPERTY_HINT_RESOURCE_TYPE, hint_string = "Texture" }) return properties
如果要指定其他资源类型,只要把hint_string里的Texture换成对应类名就行,比如要材质就填"Material",要音频流就填"AudioStream"。
完整TYPE_常量列表
TYPE_常量对应Variant.Type枚举,官方文档在@GlobalScope分类下有收录,只是位置比较隐蔽容易被忽略,完整可用值如下:
TYPE_NIL:空类型,你代码里用来做属性分组头就是用的这个TYPE_BOOL:布尔值TYPE_INT:整数TYPE_REAL:浮点数TYPE_STRING:字符串TYPE_VECTOR2:二维向量TYPE_VECTOR2I:整数二维向量TYPE_RECT2:二维矩形TYPE_RECT2I:整数二维矩形TYPE_VECTOR3:三维向量TYPE_VECTOR3I:整数三维向量TYPE_TRANSFORM2D:2D变换矩阵TYPE_VECTOR4:四维向量TYPE_VECTOR4I:整数四维向量TYPE_PLANE:3D平面TYPE_QUATERNION:四元数TYPE_AABB:轴对齐包围盒TYPE_BASIS:3D基矩阵TYPE_TRANSFORM3D:3D变换矩阵TYPE_COLOR:颜色值TYPE_STRING_NAME:StringName字符串常量TYPE_NODE_PATH:节点路径TYPE_RID:资源RIDTYPE_OBJECT:所有Object派生类型,所有具体资源、节点、自定义类都用这个基础类型,配合PROPERTY_HINT_RESOURCE_TYPE提示指定具体类TYPE_CALLABLE:可调用对象TYPE_SIGNAL:信号对象TYPE_DICTIONARY:字典TYPE_ARRAY:数组,如果要限制数组元素类型,配合PROPERTY_HINT_ARRAY_TYPE提示,在hint_string里填元素类型名即可TYPE_PACKED_BYTE_ARRAY:字节打包数组TYPE_PACKED_INT32_ARRAY:32位整数打包数组TYPE_PACKED_INT64_ARRAY:64位整数打包数组TYPE_PACKED_FLOAT32_ARRAY:32位浮点数打包数组TYPE_PACKED_FLOAT64_ARRAY:64位浮点数打包数组TYPE_PACKED_STRING_ARRAY:字符串打包数组TYPE_PACKED_VECTOR2_ARRAY:Vector2打包数组TYPE_PACKED_VECTOR3_ARRAY:Vector3打包数组TYPE_PACKED_COLOR_ARRAY:Color打包数组TYPE_PACKED_VECTOR4_ARRAY:Vector4打包数组
内容的提问来源于stack exchange,提问作者cak3_lover
相关产品推荐
相关产品推荐

