当前位置: 首页 > news >正文

[Unity] ShaderGraph动态修改Keyword Enum,实现不同效果一键切换

上次更新已然四个月前,零零散散的工作结束,终于有时间写点东西记录一下~  


实际使用中,经常会碰到同一个对象需要切换不同的材质,固然可以通过C#直接替换材质球。

或者在ShaderGraph中使用Comparison配合Branch实现切换,如下简单演示。

不过最近还发现了另一种实现方法,即是Keyword Enum,官方示释意如下。

如何创建?

使用方法也很简单,如下所示创建一个Enum。 

这里只做最简单的颜色切换演示,实际只要把不同效果的终端链接给对应的enum项即可。 

* 注意EntryName最好对应修改,后续会用到。

切换效果如下,不知道为什么OBS录不出下拉框,大家明白就好

如何使用?

除了以上手动切换,如果需要动态控制转变,则需要通过 Material.EnableKeyword()Material.DisableKeyword() 来启用或禁用 Shader 中的关键字,从而控制 Enum 的效果。

using UnityEngine;public class KeywordEnum : MonoBehaviour
{public enum EnumTest{red,blue,green}public EnumTest enumTest;public Material material;void Update(){// 禁用所有相关关键字,避免叠加material.DisableKeyword("_ENUMCOLOR_RED");material.DisableKeyword("_ENUMCOLOR_BLUE");material.DisableKeyword("_ENUMCOLOR_GREEN");switch (enumTest){//应用对应效果case EnumTest.red:material.EnableKeyword("_ENUMCOLOR_RED");break;case EnumTest.blue:material.EnableKeyword("_ENUMCOLOR_BLUE");break;case EnumTest.green:material.EnableKeyword("_ENUMCOLOR_GREEN");break;}}
}

其中"_ENUMCOLOR_RED"这个名字取自  _枚举名_枚举变量名  。

如果不清楚的话,可以切换至Debug模式进行复制。

* 注意代码中DisableKeyword()一定要有,不然就会出现效果叠加而不显示。


最终效果和手动切换也没差,就不录演示了。

通过这种方式就可以用 Enum 来控制 Shader 中的多个效果,灵活地根据游戏状态或其他条件切换不同的渲染效果。

相关文章:

[Unity] ShaderGraph动态修改Keyword Enum,实现不同效果一键切换

上次更新已然四个月前,零零散散的工作结束,终于有时间写点东西记录一下~ 实际使用中,经常会碰到同一个对象需要切换不同的材质,固然可以通过C#直接替换材质球。 或者在ShaderGraph中使用Comparison配合Branch实现切换&#xff…...

Unity开发哪里下载安卓Android-NDK-r21d,外加Android Studio打包实验

NDK下载方法(是r21d,不是r21e, 不是abc, 是d版本呢) google的东西,居然是完全开源的 真的不是很多公司能做到,和那种伪搜索引擎是不同的 到底什么时候google才会开始造车 不过风险很多,最好不要合资,风险更大 Andr…...

FFTW基本概念与安装使用

FFTW基本概念与安装使用 1 基本概念2 编译安装3 使用实例3.1 单线程3.2 多线程 本文主要介绍FFTW库的基本概念、编译安装和使用方法。 1 基本概念 FFTW (Fastest Fourier Transform in the West)是C语言的一个子程序库,用于计算一维或多维离散傅里叶变换(Discrete …...

【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析

Hiヽ(゜▽゜ )-欢迎来到蓝染Aizen的CSDN博客~ 🔥 博客主页: 【✨蓝染 の Blog😘】 💖感谢大家点赞👍 收藏⭐ 评论✍ 文章目录 行为型模式1、模板方法模式(1)概述(2&…...

教师如何打造专属私密成绩查询系统?

期末的校园,被一种特殊的氛围所笼罩。老师们如同辛勤的工匠,精心打磨着每一个教学环节。复习阶段,他们在知识的宝库中精挑细选,把一学期的重点内容一一梳理,为学生们打造出系统的复习框架。课堂上,他们激情…...

【1224】C选填(字符串\0占大小,类大小函数调用,const定义常量,逗号表达式取尾,abs返回值

1.设有数组定义: char array[]"China"; 则数组array所占的存储空间为__________ 6 注意要加上\0的位置 数组中考虑‘\0’,sizeof()判断大小也要考虑‘\0’ 2.初始化数组char[] strArray"kuai-shou",strArray的长度为(&am…...

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——终篇

本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——终篇 ​ 至此,本系列的所有备赛分享已经结束 ​ 首先说说备赛的过程吧,这次比赛,真的是让我学到了太多书本上学不到的东西。一开始,对统筹控制还很模糊&a…...

复合机器人:开启智能制造新时代

在当今科技飞速发展的时代,智能制造已成为制造业转型升级的关键驱动力。而复合机器人作为智能制造领域的一颗璀璨新星,正以其卓越的性能和创新的设计,为各行各业带来前所未有的变革与机遇。 复合机器人,顾名思义,是融…...

装饰者模式

代码详解:【设计模式】Java 设计模式之装饰者模式(Decorator)_java 装饰者模式-CSDN博客 // 抽象构件角色 public interface Component {void operation(); }// 具体构件角色 public class ConcreteComponent implements Component {Override…...

【机器学习】当教育遇上机器学习:打破传统,开启因材施教新时代

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 教育是人类社会发展的基石,然而传统教育模式往往难以满足每个学生的个性化需求。随着机器学习技术的兴起,教…...

【蓝桥杯每日一题】分糖果——DFS

分糖果 蓝桥杯每日一题 2024-12-24 分糖果 DFS 题目描述 两种糖果分别有 9 个和 16 个,要全部分给 7 个小朋友,每个小朋友得到的糖果总数最少为 2 个最多为 5 个,问有多少种不同的分法。糖果必须全部分完。 只要有其中一个小朋友在两种方案中…...

information_schema是什么?

前言 在现代数据驱动的应用开发中,理解和管理数据库结构变得尤为重要。几乎所有的SQL数据库管理系统(DBMS)都提供了一个名为 information_schema 的虚拟数据库。它不仅是一个了解数据库内部结构的强大工具,也是一个实现跨平台兼容…...

案例分析-THC7984设计问题报告

目录 简介 配置信息 结论: 简介 使用的环境 AD芯片:THC7984 VGA信号:通过电脑主机产生1024x768 60HZ信号。 配置信息 AD数字数字产生通过FPGA接收。 AD寄存器配置(第一个数数据,第二个是地址): iic_write_reg 1 0x1e iic_write_reg 02 0x5...

HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别

在智能手机、平板和其他智能设备日益智能化的今天,视觉识别技术成为提升用户体验和智能交互的重要手段。HarmonyOS NEXT通过基础视觉服务(HMS Core Vision)提供了一套强大的视觉识别功能,其中多目标识别作为其关键技术之一&#x…...

【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割

数据预处理 通过网盘分享的文件:银行流失预测数据和代码 链接: https://pan.baidu.com/s/1loiB8rMvZArfjJccu4KW6w?pwdpfcs 提取码: pfcs 非数值特征处理 目的:将非数值特征转换为数值型,以便模型能够处理。方法: 地理位置&am…...

使用 docker ps 查不到刚刚创建的容器

问题描述 docker创建mysql容器并实现本地目录挂载,虽然创建成功了,但是查看容器却不存在,删除重新创建还是同样的问题。 原因分析: 因为做本地目录挂载的时候在宿主机中创建了相关文件夹,并且还预先把数据库文件丢…...

vue2+element 前端表格下载

前台下载table表格 可下载fixed columns和普通平铺的表格 exportExcel() {const tableContainer document.querySelector(#table)const fixflg tableContainer ? tableContainer.querySelector(.el-table__fixed) : null// const fixflg document.querySelector(.el-table_…...

MySQL使用LOAD DATA INFILE方式导入文本文件

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理

文章目录 一、软件下载安装1、Unity官网2、下载Unity Hub 二、修改Unity Hub配置1、设置Unity Hub中文语言2、修改默认存储目录 三、安装unity编辑器1、点击安装编辑器2、版本选择3、关于版本号4、安装模块选择5、等待下载完成自动安装即可6、追加unity和模块 四、许可证管理专…...

SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 云服务器的准备 2.0 Xshell 和 Xftp 软件 2.1 Xshell 介绍 2.2 Xftp 介绍 3.0 在云服务器进行环境配置 3.1 安装 JDK 3.2 安装 MySQL 3.3 安装 Nginx 4.0 SpringB…...

3.4《深入浅出:轮询(Polling)与事件(Event)驱动模型》

001、开篇:从“忙等”到“响应”——理解轮询与事件的核心差异 深夜两点,示波器的波形已经乱成一团麻。我盯着屏幕,手里攥着逻辑分析仪的探头,试图找出那个丢失的传感器数据包。代码里明明写着“等待设备就绪”,但CPU使用率却飙到了98%。同事凑过来看了一眼,指着那个whi…...

WarcraftHelper:经典游戏现代化的终极优化解决方案

WarcraftHelper:经典游戏现代化的终极优化解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为魔兽争霸III设…...

路径分析—PostgreSQL+GeoServer+Openlayers

一、道路数据处理 如果你已经有了道路数据,那就直接使用。 由于当前并没有较好的道路数据,这里我自己用 QGIS 造了些数据以供使用。 为了效果较好,在创建道路数据时是叠加了影像图的。并且要开启“捕捉工具”,这样在后续的拓扑分析中更好。 在完成道路数据的创建后,我直…...

利用C语言高性能库优化SDMatte前后处理速度

利用C语言高性能库优化SDMatte前后处理速度 1. 为什么需要优化SDMatte前后处理 在实际的图像处理项目中,我们经常会遇到这样的场景:核心AI模型推理速度很快,但前后处理却成了性能瓶颈。SDMatte作为一款优秀的图像分割工具,也面临…...

终极指南:如何利用Awesome DevSecOps构建企业安全文化全流程

终极指南:如何利用Awesome DevSecOps构建企业安全文化全流程 【免费下载链接】awesome-devsecops An authoritative list of awesome devsecops tools with the help from community experiments and contributions. 项目地址: https://gitcode.com/gh_mirrors/aw…...

Qwen3.5-2B网络编程应用:构建基于WebSocket的实时多模态聊天服务

Qwen3.5-2B网络编程应用:构建基于WebSocket的实时多模态聊天服务 1. 实时聊天服务的价值与挑战 想象一下这样的场景:电商客服需要同时处理图片咨询和文字提问,在线教育平台要实时解答学生上传的题目截图,或是设计团队需要AI即时…...

Pixel Dream Workshop集成Dify应用流:构建AI绘画工作台实战

Pixel Dream Workshop集成Dify应用流:构建AI绘画工作台实战 1. 为什么需要AI绘画工作流自动化 电商公司每天需要生产数百张商品展示图,自媒体团队每周要创作几十套视觉内容,游戏工作室的角色设计需求源源不断。传统人工绘制方式不仅成本高、…...

突破百度网盘下载限制的开源工具:免费提速技巧全解析

突破百度网盘下载限制的开源工具:免费提速技巧全解析 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘的龟速下载而烦恼吗&am…...

【网络层-ICMP互联网控制报文协议】

网络层-ICMP互联网控制报文协议一、概念二、应用三、报文类型一、概念 1.专门用来传递网络状态、报错、探测连通性的 “网络信使 / 反馈员”。 2.IP协议只管发包,不管包有没有送到、有没有丢包,ICMP就是给IP做辅助、报错、探测的。 3.ICMP告诉发送方&am…...

Nano-Banana软萌拆拆屋实操手册:Euler A采样算法调参指南

Nano-Banana软萌拆拆屋实操手册:Euler A采样算法调参指南 1. 引言:当AI遇见软萌拆解艺术 你是否曾经看着心爱的衣服,想知道它是由哪些部分组成的?或者作为一名设计师,想要清晰地展示服装的结构细节?Nano-…...