我制作了一个半透明立方体的场景。在每个立方体的内部,有另一个(略小)立方体,网格翻转,因此立方体的墙壁从内部和外部都可见。我的问题是立方体的排序是不正确的。如果我在游戏运行时用相机环顾四周,立方体的顺序就会开始跳跃。正如您在图像中看到的那样,左上方的灰色立方体是来回跳跃的。
我使用3rd Person Controller + Fly Mode作为我的播放器控制器。所有立方体都使用标准着色器。另外值得一提的是,立方体和相应的材料是从C#脚本生成的。
为每个多维数据集执行此操作以启用透明度:
material.SetFloat("_Mode", 3f);
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
material.SetInt("_ZWrite", 0);
material.DisableKeyword("_ALPHATEST_ON");
material.DisableKeyword("_ALPHABLEND_ON");
material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
material.renderQueue = 3000;
我已经尝试将相机设置为Camera.transparencySortMode = TransparencySortMode.Orthographic
,因为我发现这是论坛中的提示,但这使情况变得更糟。
实际上我希望这只是开箱即用。但似乎我必须做一些特别的事情才能让我的用例工作。但是什么? :)