ShaderGUI的学习
继承自ShaderGUI
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.Collections.Generic;
using System;public class ShaderGUITest : ShaderGUI
{private MaterialProperty[] _properties;private int defaultWidth = 2048;private int defaultHeight = 2048;public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] properties){_properties = properties ;// render the default guibase.OnGUI(materialEditor, properties);MaterialProperty mytest = FindProperty("_MainTex", _properties) ;Texture tex = mytest.textureValue;string texPath = AssetDatabase.GetAssetPath(mytest.textureValue.GetInstanceID());Material targetMat = materialEditor.target as Material;// see if redify is set, and show a checkboxbool CS_BOOL = Array.IndexOf(targetMat.shaderKeywords, "CS_BOOL") != -1;EditorGUI.BeginChangeCheck();//检查面板上cs_bool的开关变化CS_BOOL = EditorGUILayout.Toggle("CS_BOOL", CS_BOOL);if (EditorGUI.EndChangeCheck()){//设置全局着色器关键字。targetMat.EnableKeyword("CS_BOOL");}else{//取消设置全局着色器关键字。targetMat.DisableKeyword("CS_BOOL");}if (tex.width != defaultWidth){string errorStr = string.Format("{0}: 大小不等于2048,宽为{1},格式为{0},请检查,地址{3}",tex.name,tex.width,texPath);EditorGUILayout.HelpBox(errorStr, MessageType.Error);}}
}
ongui就是画在面板上的东西
MaterialEditor
可以获取材质的东西
MaterialProperty
材质的一些参数
MaterialProperty mytest = FindProperty("_MainTex", _properties) ;
获取shader中_MainTex的属性
啥叫设置全局着色器关键字。
#pragma shader_feature CS_BOOL
Unity shader 编辑器扩展类 ShaderGUI-腾讯游戏学堂
ShaderGUI的学习相关推荐
- Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板
写在之前 Shader变体.Shader属性定义技巧.自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用 ...
- java入门 慕路径,Java入门基础知识总结学习教程大全【必看经典】
类型的表达式,是循环条件,表达式3是党执行了一遍循环之后,修改控制循环的变量值. ??? for语句的执行过程是这样的:首先计算表达式1,完成必要的初始化工作:然后判断表达式2的值,如果表达式的值为t ...
- Java EE学习心得
–Java EE学习心得 1. 称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...
- FastAI 2019课程学习笔记 lesson 2:自行获取数据并创建分类器
文章目录 数据获取 google_images_download 的安装和使用 挂载google 个人硬盘到Google colab中 删除不能打开文件 创建ImageDataBunch 训练模型 解 ...
- FastAI 课程学习笔记 lesson 1:宠物图片分类
文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...
- 深度学习学习指南-工具篇
colab Colab是由Google提供的云计算服务,通过它可以让开发者很方便的使用google的免费资源(CPU.GPU.TPU)来训练自己的模型. 学习经验总结 如何使用命令行? 通过!+cmd ...
- Redis学习之路(一)--下载安装redis
redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...
- python内置库之学习configparser库(一)
python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...
- 前端Vue学习之路(二)-Vue-router路由
Vue学习之路 (二) Vue-router(基础版) 一.增加静态路由 二.动态路由+路由嵌套+404页面 三. 编程式导航 四.命名路由 五.命名视图 六.重定向和起别名 1.重定向 2.起别名 ...
最新文章
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(四):在编译时绑定扩展方法的规则
- hibernate 逆向工程
- spring @Value 获取配置文件为 null 常见的几种方式
- 弯曲圆波导matlab_弯曲波导结构设计
- OpenCV使用不同的决策树decision trees的实例(附完整代码)
- 机器人点焊枪接线_用于焊接机器人焊枪工具点及工件坐标系标定装置及方法与流程...
- python出现—with the features you requested: lxml. Do you need to install a parser library?
- 计算机网络要点,计算机网络要点
- 关于c++的return
- mouseover和mouseenter的区别?
- AD画PCB常规问题分析
- 异构数据库、异构数据源、分布式数据库三者的辨析区别
- 美国大学计算机专业排名2019,2019年美国大学计算机排名
- elementUI-收起与展开
- pythongui界面管理系统_Python实现GUI学生信息管理系统
- 管理系统联系人之补充
- 【iPhone自定义铃声】iPhone设置炫酷的电话铃声、闹钟铃声-私人定制铃声-摆脱枯燥单一的iPhone背景铃声-操作超级简单
- 网维大师不能启动虚拟盘服务器,服务器网络模块导致网维大师无盘程序无法启动?...
- 【分布式框架】深入理解分布式之缓存击穿
- mysql、sql yog安装和常见的mysql语句