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
        }
    }
}
相关推荐
不怕麻烦的鹿丸15 分钟前
web前端录制canvas视频和video的声音,并合并成一个文件进行下载
前端·javascript·音视频·canvas
渲染101专业云渲染25 分钟前
川翔云电脑是什么?租电脑?
运维·服务器·电脑
007php00733 分钟前
Docker、Ollama、Dify 及 DeepSeek 安装配置与搭建企业级本地私有化知识库实践
运维·服务器·开发语言·后端·docker·容器·云计算
我不当帕鲁谁当帕鲁1 小时前
arcgis for js实现平移立体效果
前端·javascript·arcgis
狄加山6751 小时前
网络编程(预备知识)
服务器·网络·php
致奋斗的我们1 小时前
项目:利用rsync备份全网服务器数据
linux·运维·服务器·开发语言·github·rsync·openeuler
录大大i1 小时前
HTML之CSS定位、浮动、盒子模型
前端·css·html
P7进阶路1 小时前
Ajax:重塑Web交互体验的人性化探索
前端·javascript·ajax
抛砖者1 小时前
5 Flink的时间和窗口操作
服务器·flink·window操作·flink时间语义
bin91532 小时前
DeepSeek 助力 Vue 开发:打造丝滑的步骤条
前端·javascript·vue.js