Shader面板上常用的内置Enum有哪些
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关Shader面板上常用的内置Enum有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天打算把一个shad
千家信息网最后更新 2026年10月31日Shader面板上常用的内置Enum有哪些
本篇文章给大家分享的是有关Shader面板上常用的内置Enum有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
今天打算把一个shader的ZTest属性暴露在材质面板上让美术可以方便调节,因为也不是很重要的一个shader就懒得专门写一个UI了,按照ZTest关键字找半天没找到,最后发现原来叫CompareFunction。
所以顺便把shader里常用的一些都整理了一下,(另外发现现在也可以使用自定义的Enum了,印象中老版本的unity是不支持的,不知道是记错了还是unity后来支持了)
代码如下
Shader "Mya/EnumTest"{Properties{_MainTex ("Texture", 2D) = "white" {}[Header(Custom)][Enum(CustomEnum)] _CustomEnum ("CustomEnum", Float) = 1.0[Header(Option)][Enum(UnityEngine.Rendering.BlendOp)] _BlendOp ("BlendOp", Float) = 1.0[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Float) = 1.0[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Float) = 0.0[Enum(Off, 0, On, 1)]_ZWriteMode ("ZWriteMode", float) = 1[Enum(UnityEngine.Rendering.CullMode)]_CullMode ("CullMode", float) = 2[Enum(UnityEngine.Rendering.CompareFunction)]_ZTestMode ("ZTestMode", Float) = 2[Enum(UnityEngine.Rendering.ColorWriteMask)]_ColorMask ("ColorMask", Float) = 2[Header(Stencil)][Enum(UnityEngine.Rendering.CompareFunction)]_StencilComp ("Stencil Comparison", Float) = 8[IntRange]_StencilWriteMask ("Stencil Write Mask", Range(0,255)) = 255[IntRange]_StencilReadMask ("Stencil Read Mask", Range(0,255)) = 255[IntRange]_Stencil ("Stencil ID", Range(0,255)) = 0[Enum(UnityEngine.Rendering.StencilOp)]_StencilPass ("Stencil Pass", Float) = 0[Enum(UnityEngine.Rendering.StencilOp)]_StencilFail ("Stencil Fail", Float) = 0[Enum(UnityEngine.Rendering.StencilOp)]_StencilZFail ("Stencil ZFail", Float) = 0}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{BlendOp [_BlendOp]Blend [_SrcBlend] [_DstBlend]ZWrite [_ZWriteMode]ZTest [_ZTestMode]Cull [_CullMode]ColorMask [_ColorMask]Stencil{Ref [_Stencil]Comp [_StencilComp]ReadMask [_StencilReadMask]WriteMask [_StencilWriteMask]Pass [_StencilPass]Fail [_StencilFail]ZFail [_StencilZFail]}CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);return o;}fixed4 frag (v2f i) : SV_Target{// sample the texturefixed4 col = tex2D(_MainTex, i.uv);return col;}ENDCG}}}
自定义Enum的代码
public enum CustomEnum{ Enum1 = 0, Enum2 = 1, Enum3 = 2}效果如下

ZWriteMode是没有内置的,实际上也只有on和off两个状态,所以用Toogle其实也可以,我这里是直接用[Enum(Off, 0, On, 1)]这样的写法声明了个新的自定义Enum
[IntRange]我记得以前好像也是没有的,这个可以绘制一个整形输入的滑杆
想要知道unity还有哪些shader里可以用的Attributes可以看看MaterialPropertyDrawer.cs这个文件,或者继承MaterialPropertyDrawer后自己写一个。
以上就是Shader面板上常用的内置Enum有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
常用
面板
代码
更多
知识
篇文章
支持
实用
重要
两个
关键
关键字
写法
印象
只有
实际
实际上
就是
属性
工作会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网加科技
广东猪兼强互联网科技有限公司
美国互联网保险保险科技
智能科技公司是互联网公司吗
科技制造互联网公司
互联网 科技创业
伴你行互联网科技有限公司
互联网实体化科技化
温州喔噻互联网科技有限公司
福州新华互联网科技学校 知乎
互联网科技教育视频
互联网科技项目计划书材料类
企晟互联网信息科技有限公司
区块链结合互联网科技
互联网硬科技公司
抖集互联网科技技术咨询
广州梦谷互联网科技有限公司领导
普陀区互联网教育科技管理办法
互联网科技机房
黑龙江互联网科技公司
互联网科技产业
互联网金融 科技
互联网金融 科技金融
互联网 卓越科技
广西拼得多互联网科技有限公司
湖南洣水互联网科技有限公司扣款
互联网科技创新服务
企晟互联网信息科技有限公司
互联网企业科技类企业如何做账
宁波允成互联网科技有限公司