Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算
来源:互联网 发布:奔驰c级coupe 知乎 编辑:程序博客网 时间:2024/05/18 03:26
最近开始学习Shader,深深被它的功能所折服,而在使用时会产生一个需求,能不能用一个布尔值去控制Shader的运算逻辑,可以让他展示两套不同的表现形式,在翻看有关Shader的书籍时看到了这一部分,特此记录:
using UnityEngine;
using UnityEditor;
using System;
public class CustomShaderGUI : ShaderGUI
{
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties)
{
// render the default gui
base.OnGUI(materialEditor, properties);
Material targetMat = materialEditor.target as Material;
// see if redify is set, and show a checkbox
bool redify = Array.IndexOf(targetMat.shaderKeywords, "REDIFY_ON") != -1;
EditorGUI.BeginChangeCheck();
redify = EditorGUILayout.Toggle("Redify material", redify);
if (EditorGUI.EndChangeCheck())
{
// enable or disable the keyword based on checkbox
if (redify)
targetMat.EnableKeyword("REDIFY_ON");
else
targetMat.DisableKeyword("REDIFY_ON");
}
}
}
原理也很简单,利用编辑器扩展类去实现添加选项,将这个结果运用于shader中,在shader中添加 CustomEditor "CustomShaderGUI" 直接可以利用了
- Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算
- Unity Shader初涉之 -- Properties
- Unity Shader 之Geometry Shader
- Unity Shader 之 RollingImage
- Unity Shader 之 Halo
- Unity Shader之Blending
- Unity Shader之Tessellation
- Unity Shader之投影
- unity之shader
- unity shader lod 使用
- unity shader:使用噪声
- Unity中Shader LOD控制
- Unity中Shader LOD控制
- 【Unity Shader编程】之十四 边缘发光Shader(Rim Shader)的两种实现形态
- Unity之自带shader
- Unity之Shader初识 - 一
- Unity实用Shader之遮罩层
- Unity Shader之Billboard算法
- opencv实现PCA人脸降维
- php字符串处理函数
- 运行wordcount程序报 Input path does not exist 错
- Linux系统下项目部署常用命令
- [编程题] 重排数列
- Unity Shader初涉之 -- 布尔值控制Shader使用哪种计算
- 装修前必看!设计师私下讨论的最新餐厅设计全在这里了!
- 针对移动端的前端工作流(7)—WeUI样式的loading和dialog组件 96 冴羽 关注 2016.10.13 20:10 字数 273 阅读 1018评论 0喜欢 1 有这个需求 因为移动
- ETL讲解(很详细!!!)
- js之事件冒泡和事件捕获详细介绍
- 十进制整数转换二进制
- G
- sulley里面Pcapy模块安装容易出错地方
- java常用面试题