Как я могу увидеть внутреннюю часть цилиндра в Unity? - PullRequest
0 голосов
/ 02 февраля 2019

Я помещаю камеру в цилиндр, но не вижу ее.Все, что я вижу, это снаружи.Что мне делать?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Вместо использования двусторонних материалов (которые будут визуализироваться дважды) вы можете просто перевернуть сетку (иначе говоря, инвертировать нормали).

Инвертирование нормалей выполняется путем взятия массива треугольников, который содержит индексы вершин, которые сеткаотносится к треугольникам рендеринга.

Простейший код, который делает это выглядит примерно так:

[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;
    }
}

Это сделает внутреннюю часть капсулы видимой в режиме игры

0 голосов
/ 02 февраля 2019

Я узнал!Вы должны добавить материал в цилиндр, затем выбрать Shader / Legacy Shaders / Particles / Alpha Blended.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...