Unity surface shader处理阴影不随discard变化
由于主surface中是默认的不透明,只不过用了discard。而阴影的pass只是用了#pragma的fullforwardshadows,那个代码里肯定没有我们自己discard的逻辑,所以就会导致实体discard变化了,但阴影还是没有变化。
于是删除fullforwardshadows,自己加阴影Pass。
原来在surface shader中的SubShader中,在包含主surface函数的CGPROGRAM块后面可以直接加Pass{}块。这里面加shadow逻辑就行了。