首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之材质Shader通用面板(一百二十一)
2020
12-22

Unity3D研究院之材质Shader通用面板(一百二十一)

技美在调shader的时候可能不太擅长C#编辑面板的代码,所以有了这篇文章。我封装了一个通用的着色器GUI面板,这样就可以不需要写C#代码了,实现的过程中试图解决了这几个问题。

1.视图解决分组面板展开与缩进

2.if标签与原生标签的混合

我看了下编辑器下C#的代码自定义MaterialPropertyDrawer虽然也可以实现分组,但是无法与原生标签嵌套混合,所以改变了一下思路,在面板中如果有if标签,并且Foldout没有展开不进行绘制。

直接上代码

Unity3D研究院之材质Shader通用面板(一百二十一) - 雨松MOMO程序研究院 - 1

实现展开效果

Unity3D研究院之材质Shader通用面板(一百二十一) - 雨松MOMO程序研究院 - 2

 

shader的GUI代码,使用foldout和if标签来实现分组,与原生标签进行混合排版

 

shader的底部写上 CustomEditor “CustomShaderGUI”

这样以后就技美就不需要在写任何GUI面板了代码了,shader面板的原生标签可以参考这里 https://docs.unity3d.com/ScriptReference/MaterialPropertyDrawer.html

以上代码我在项目中简单的测试过,欢迎大家提出一键与建议~

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

Unity3D研究院之材质Shader通用面板(一百二十一)》有 4 条评论

  1. EE 说:

    感谢大佬的分享捏,十分简洁,不像有些太花里胡哨的中看不中用

  2. nps 说:

    感谢大佬的分享,很有用!

  3. dsa 说:

    请不要使用纯英文评论

  4. Fly 说:

    赞,还缺一个C#面板的

留下一个回复

你的email不会被公开。