Shader面板上常用的内置Enum有哪些
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇文章给大家分享的是有关Shader面板上常用的内置Enum有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天打算把一个shad
千家信息网最后更新 2025年12月01日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安全错误
数据库的锁怎样保障安全
软件要求填写服务器地址
应用软件开发面试常问问题
5g网络安全机制
连接gp数据库并获取数据
联盟手游公会不在一个战斗服务器
麻将软件开发工作室
香港站群服务器租赁
浪潮ps的服务器标志
网络安全行业发展规划及战略
手机怎么注册服务器
sql数据库备份方式
广电网络技术点评
csgo官匹服务器代码
青岛培训软件开发服务
传奇世界单机服务器声音文件
用友无法打开数据库
网络安全学院隔离点
老马布兰契服务器人口比例
mpkg软件开发
银河证券与网络安全
软件开发色弱
衡水创达网络技术有限公司执照
在网络安全领域怎么学习
GPU超融合服务器
mysql数据库集群原理
txt软件开发
数据库技术的三个发展
服务器安全狗连不上远程
前端能不能直接和数据库交互
刀剑乱舞 国服服务器