UnityShaderUI编辑器扩展

前言:

当我们在制作通用Shader的时候,避免不了许多参数混杂在一起,尽管在材质面板已经使用过Header标签来区分,但是较长的Shader参数就会导致冗余,功能块不够简约明了,如图:

对于Shader制作者来说,Shader的所有功能都了解,但是对于项目的同组伙伴来说,我们还需要教他们这些参数的作用,那些模块是干什么的,很不友好!

于是乎,扩展Shader的显示界面就变得尤为重要,如图:

ShaderUI界面的扩展其实也是一种编辑器扩展,和普通的编辑器扩展脚本的编写方式基本一致,都可是使用EditorLayout这些UI自定义布局方法。

OnGUI

首先这是编辑器扩展,需要调用编辑器的命名空间,同时需要继承ShaderGUI函数

而其中,最重要的就是重写OnGUI函数

可以看到的是,这个函数会传递两个参数进来,MaterialEditor则是当前材质的编辑,MaterialProperty\[\]数组则包含了Shader中在Property里定义的所有属性,下标从0开始,剩余的就和普通的编辑器扩展一样了。

一般在改变UI界面的属性时对应的material也应该设置属性值,则使用EditorGUI.BeginChangeCheck和EditorGUI.EndChangeCheck可以检测属性值是否改变并执行相应的操作了

基础的编辑器扩展可以看我之前的文章:Unity拓展编辑器基础知识

相关推荐
zyplayer-doc11 小时前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
古德new12 小时前
鸿蒙PC迁移:Photoflare Qt 图片编辑器鸿蒙PC适配全记录
qt·编辑器·harmonyos
春日见16 小时前
vscode的AI编程插件推荐:
大数据·ide·vscode·算法·机器学习·编辑器·ai编程
jieshenai18 小时前
VScode sys.path,并使CTRL+左键可访问源码
ide·vscode·编辑器
qq_4480111619 小时前
VSCode环境搭建
ide·vscode·编辑器
hadage23321 小时前
我做了一款能秒开打开 13G 文件的编辑器
编辑器
by————组态21 小时前
Ricon组态可视化编辑器 - 所见即所得的工业画布
前端·javascript·物联网·架构·编辑器·组态
CG_MAGIC1 天前
3ds Max材质编辑器:精简模式与Slate模式对比
3d·编辑器·材质·贴图·uv·建模教程
Bright16681 天前
从零打造 Cursor 平替:基于 VS Code 二开的 AI 编程编辑器 CodexaX
人工智能·开源·编辑器
User_芊芊君子1 天前
鸿蒙PC适配:Pinta GTK 图像编辑器鸿蒙 PC ArkWeb 适配全记录:从 .NET_GTK4 桌面到 HarmonyOS PC HAP
编辑器·.net·harmonyos