2.1.3 如何读取shader 后在组件属性面板上根据不同的shader显示不同的属性

就像自带的材质球一样的显示。
阅读cc.material源码 找不到怎么根据不同的shader 显示不同的属性的相关代码。
也有点像button 等组件里面的自定义inspector,但是这里是动态根据所选择的shader 显示属性,而不是一开始就定义好的
求大佬解答