如何在Unity中看到圆柱体的内部?

时间:2019-02-02 20:32:29

标签: unity3d

我把我的相机的圆柱体内,但我无法看到它。我所看到的只是它的外部。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您不必翻转双面材料(它将渲染两次),而只需翻转网格(也称为反转法线)即可。

通过使用包含包含在renderig三角形时网格所引用的顶点索引的triangles数组来执行法线反转。

最简单的代码看起来像这样:

[RequireComponent(typeof(MeshFilter))]
public class MeshInverter : MonoBehaviour
{
    void Start()
    {
        var meshFilter = GetComponent<MeshFilter>();
        var triss = meshFilter.sharedMesh.triangles;
        var normals=meshFilter.sharedMesh.normals;
        for (int i=0;i<normals.Length;i++)
            normals[i]=-normals[i];
        for (int i = 0; i < triss.Length / 3; i++)
        {
            int temp = triss[i * 3 + 1];
            triss[i * 3 + 1] = triss[i * 3];
            triss[i * 3] = temp;
        }
        Mesh mesh=Instantiate(meshFilter.sharedMesh);
        mesh.triangles=triss;
        mesh.normals=normals;
        meshFilter.mesh=mesh;
    }
}

它将在播放模式下显示胶囊的内部

答案 1 :(得分:0)

我发现了!你必须的材料添加到该气缸,然后选择着色器/传统着色器/颗粒/ Alpha混合。