Unity Shader Feature

Shader Feature

设置Keyword

//0:Red 1:Green 2:Blue

Mat.SetInt("_Color",0);

需要在创建时进行设置,运行时不可设置

bash 复制代码
Shader "Unlit/KeywordEnum"
{
    Properties
    {
        [KeywordEnum(Red,Green,Blue)] _Color("Color",int) = 0
    }
    SubShader
    {
        Pass
        {
            HLSLPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            //Each keyword must start with the property name followed by _<Enum Value>. All in uppercase.
            #pragma  shader_feature _COLOR_RED _COLOR_GREEN _COLOR_BLUE

            #include "UnityCG.cginc"

            float4 vert(float4 positionOS : POSITION) : SV_POSITION
            {
                return UnityObjectToClipPos(positionOS);
            }

            float4 frag() : SV_Target
            {
                float4 color;

                #ifdef _COLOR_RED
                color = float4(1, 0, 0, 1);
                #elif _COLOR_GREEN
                color = float4(0, 1, 0, 1);
                #elif _COLOR_BLUE
                color = float4(0,0,1,1);
                #endif

                return color;
            }
            ENDHLSL
        }
    }
}
相关推荐
左钦杨26 分钟前
Nuxt2 vue 给特定的页面 body 设置 background 不影响其他页面
前端·javascript·vue.js
yechaoa31 分钟前
【揭秘大厂】技术专项落地全流程
android·前端·后端
MurphyChen37 分钟前
🤯 一行代码,优雅的终结 React Context 嵌套地狱!
前端·react.js
zxnbmk40 分钟前
ansible速查手册
linux·服务器·ansible
逛逛GitHub42 分钟前
推荐 10 个受欢迎的 OCR 开源项目
前端·后端·github
小卓笔记1 小时前
DNS主从服务器
运维·服务器
Muisti1 小时前
TCP 通信流程图
服务器·网络·windows
scoone1 小时前
游戏开发引擎对比:Godot、Unity、Unreal与cocos2d的优劣分析
unity·游戏引擎·godot
阿正的梦工坊1 小时前
Linux 命令:按内存使用大小排序查看 PID 的完全指南
linux·运维·服务器
_xaboy1 小时前
开源 FormCreate 表单设计器配置组件的多语言
前端·vue.js·低代码·开源·可视化表单设计器