Вот метод генерации куба, собранного через Интернет:
static void CreateCube () {
Vector3[] vertices = {
new Vector3 (0, 0, 0),
new Vector3 (1, 0, 0),
new Vector3 (1, 1, 0),
new Vector3 (0, 1, 0),
new Vector3 (0, 1, 1),
new Vector3 (1, 1, 1),
new Vector3 (1, 0, 1),
new Vector3 (0, 0, 1),
};
int[] triangles = {
0,
2,
1, //face front
0,
3,
2,
2,
3,
4, //face top
2,
4,
5,
1,
2,
5, //face right
1,
5,
6,
0,
7,
4, //face left
0,
4,
3,
5,
4,
7, //face back
5,
7,
6,
0,
6,
7, //face bottom
0,
1,
6
};
GameObject tem = new GameObject ("Custom Mesh");
tem.AddComponent<MeshFilter> ();
Mesh mesh = tem.GetComponent<MeshFilter> ().mesh;
mesh.Clear ();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.Optimize ();
mesh.RecalculateNormals ();
}
Когда я вызываю этот метод, он выдает ошибку:
Создание сетки из-за вызова MeshFilter.mesh в режиме редактирования. Это приведет к утечке сеток. Пожалуйста, используйте MeshFilter.sharedMesh вместо этого.
UnityEngine.MeshFilter: get_mesh ()
И когда наконец я изменю Mesh mesh = tem.GetComponent<MeshFilter>().mesh;
на Mesh mesh = tem.GetComponent<MeshFilter>().sharedMesh;
Это дает мне еще одну ошибку, говоря:
NullReferenceException: ссылка на объект не установлена для экземпляра объекта
Я нажал на Консоль , и он направил меня к той же строке.