Skip to content

属性(Properties) ​

Property 是 CSS 声明外部输入的机制。入口函数除固定参数外需要使用的其他数据,必须先在 Properties { ... } 中声明,再通过声明的属性名称读取。

支持的类型 ​

CSS 仅支持以下四种 Property 类型:

声明数据类型默认值或资源语法生效环境
[Float]float[Float] Strength : 1.0全部
[Vector]vec4[Vector] Direction : (0.0, 1.0, 0.0, 0.0)全部
[Color]vec4(RGBA)十六进制颜色(例如 #FFFFFF00)或 (x, y, z, w)全部
[Sampler:2D]sampler2D[Sampler:2D] Planet : "textures/Planet"全部

采样器目前只支持 2D。

数据来源 ​

作者属性 ​

未使用引擎数据绑定的 Property 可声明默认值:

Properties
{
    [Float] Strength : 1.0
    [Color] Tint : #FFFFFFFF
    [Sampler:2D] DetailTexture : "textures/Detail"
}

BuiltIn ​

BuiltIn 将 Property 绑定到引擎提供的只读值:

[Float, BuiltIn: "MinecraftTimeOfDay"] TimeOfDay

MinecraftTimeOfDay 是引擎保留 Uniform 的绑定名,TimeOfDay 是作者在代码中使用的 Property 名称。可用绑定名见保留内置 Uniform。

Exposed ​

Exposed 以指定名称暴露 Property。该机制用于通过脚本设置属性值:

[Vector, Exposed: "Tint"] TintValue

约束 ​

  • [Float]、[Vector] 和 [Color] 可以携带 BuiltIn 或 Exposed 中的一种数据绑定;[Sampler:2D] 不支持这两种绑定。
  • [Sampler:2D] 声明必须提供纹理 URI。
  • 引擎内置值必须显式声明后才能读取,不会自动出现在代码作用域中。
  • BuiltIn Property 的值由引擎填充,CSS 将其作为只读输入使用。
  • Property 是逐材质 Uniform。