# 属性(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。
网易大神
扫码下载网易大神