定义材质的可调节属性

语法

声明属性

SHADERLAB
Properties {
	[Attribute][...] _Name ("显示名称", Type) = 默认值
}
点击展开查看更多

绑定变量

HLSL
对应类型 _Name;
点击展开查看更多

Type

数据类型。仅是暴露到编辑器中的类型,实际类型要看着色器源码对该变量的定义

Type(类型) 语法示例 解释
Int _Int("Name", Int) = 2 整数类型,用于声明整数值属性。
Float _Float("Name", Float) = 1.5 浮点数类型,用于声明浮点数值属性。
Range (Min, Max) _Range("Name", Range(0,1)) = 0.5 范围类型,声明一个在最小值和最大值之间的浮点数(滑动条)。
Color _Color("Name", Color) = (1,1,1,1) 颜色类型,声明一个RGBA颜色(支持颜色拾取器)。
Vector _Vector("Name", Vector) = (0,0,0,0) 向量类型,声明一个4分量向量属性。
2D Texture _2D("Name", 2D) = "white" {} 2D纹理类型,默认值可以是内置名称(如white/black)或自定义纹理。
Cube Texture _Cube("Name", Cube) = "white" {} 立方体贴图纹理类型,用于天空盒等。
3D Texture _3D("Name", 3D) = "black" {} 3D纹理类型,用于体积纹理(需手动生成或加载)。

Attribute

元数据标签,用于向 Unity 编辑器提供有关该属性如何显示行为额外信息

在Inspector中添加分组标题(仅用于UI组织)

SHADERLAB
[Header(标题文字)]
点击展开查看更多

Space

在Inspector中添加垂直间距(默认10像素)

SHADERLAB
[Space(高度像素值)]
点击展开查看更多

Toggle

将浮点数属性转换为复选框,并关联一个Shader关键字(KEYWORD

SHADERLAB
[Toggle(KEYWORD)] _Bool("Name", Float) = 0
点击展开查看更多

IntRange

Range 类型的浮点数属性转换为 整数滑动条,限制输入值为整数

SHADERLAB
[IntRange] _Level("LOD Level", Range(0, 10)) = 5
点击展开查看更多

PowerSlider

Range 类型的属性转换为 非线性滑动条(基于指数曲线),适合需要非线性调节的参数(如光照衰减、指数级变化)

SHADERLAB
[PowerSlider(3.0)] _Roughness("Roughness", Range(0.01, 1)) = 0.5
点击展开查看更多

Enum

将浮点数属性转换为下拉枚举菜单

SHADERLAB
[Enum(选项列表)] _Mode("Mode", Float) = 0
点击展开查看更多

HDR

标记颜色属性为高动态范围(HDR)

SHADERLAB
[HDR] _Color("HDR Color", Color)
点击展开查看更多

Gamma

标记浮点数/颜色属性为Gamma空间(Unity会自动进行sRGB转换)

SHADERLAB
[Gamma] _Float("Gamma", Float)
点击展开查看更多

NoScaleOffset

隐藏UV的Tiling/Offset

SHADERLAB
[NoScaleOffset] _2D("Tex", 2D)
点击展开查看更多

Normal

标记纹理属性为法线贴图(Unity会进行额外验证)

SHADERLAB
[Normal] _Bump("Normal", 2D)
点击展开查看更多

PerRendererData

表示该属性由 Renderer 动态提供(例如通过 MaterialPropertyBlock 设置、UI等),避免保存到材质实例中

SHADERLAB
[PerRendererData] _Color("Color", Color)
点击展开查看更多

版权声明

作者: Chaim

链接: https://chaim.eu.org/posts/%E5%B1%9E%E6%80%A7-properties/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键