“模板操作”属性设置?

问题描述

我知道在声明着色器的属性时,有一些类型的“输入”:浮点、范围、颜色、2D。 但是当我尝试将模板操作设置为属性时。这个怎么做?我的意思是我所知道的模板操作是这个列表中的一个(更大、GEqual、Less、LEqual、Equal、NotEqual、Always、Never),那么如何指示编辑器中的哪个操作。

我看到这样一行:

_StencilOp(“模板操作”,浮动)= 0

那么“0”代表什么?

解决方法

操作的名字对应一个整数,但是要记住所有的数字会很乏味,所以我们有了名字。但是您仍然可以使用变量分配一个整数。

在 C# 中,您使用 CompareFunction 枚举(它只是一个 int)在着色器上设置一个 int
MyMaterial.SetInt("_MyStencilOp",(int)CompareFunction.Always);

然后在着色器中放置这样的变量

Stencil {
            Ref [_PlayerStencilRef]
            Comp [_MyStencilOp]
            Pass Replace
        }

(示例修改自 here