余⇝Calo('∀') ①Demo中新建了一个自定义Shader:StencilShader,并在uniformMap中尝试暴露MaterialParser中提到的Stencil参数——s_StencilOp(Vector3); ②新建材质球,材质将引用的Shader修改为StencilUnlit; ③任意调整材质球参数后保存并刷新编辑器,之后材质报错; P.S. 其余Stencil相关参数暴露后没有任何问题,只有StencilOp会出现这个问题附件:StencilTest.rar StencilTest.rar0B
Laya_Fred 您好,这个问题我们跟进后是由于s_StencilOp在设置值的时候是一个Vector3类型的值,ide从.shader里面解析到的是Array类型导致赋值失败了;我们不建议您将引擎内置的状态相关的参数设置到uniformMap里面,您提到的别的stencil参数没问题是因为其他的stencil设置的值为int类型,可以直接设置,我们建议您只将材质用到的uniform参数放置到uniformMap里面。
余⇝Calo('∀') Laya_Fred 好的,这个明白了;那不知道还有没有其他方法能够在自定义Shader内用文本设置Stencil(如StencilRef、StencilOp...)和RenderState(如ZTest、RenderQueue...)等参数的默认值呢?