Unity 6.3
0 онлайн 30 гостей 3 в системе
Вход

Mesh.normals

Declaration

public Vector3[] normals;

Описание

Массив векторов, определяющий ориентацию поверхности в каждой вершине сетки.

Нормальные векторы используются для расчетов освещения и обычно являются единичными векторами. Каждая нормаль в массиве соответствует вершине с одинаковым индексом в массиве вершин сетки. Размер нормальных и массивов вершин должен быть одинаковым.

В некоторых случаях, например после деформации сетки или при использовании неоднородного масштабирования на Transform, нормальные могут стать неединичными по длине.

Если сетка не содержит никаких нормальных, это свойство возвращает пустую массив.

Обратите внимание, что это свойство возвращает нормальные в локальном пространстве сетки, а не в мировом пространстве.

using UnityEngine;

// Rotate the normals by speed every frame public class ExampleClass : MonoBehaviour { float speed = 100.0f;

// Update is called once per frame void Update() { // obtain the normals from the Mesh Mesh mesh = GetComponent<MeshFilter>().mesh; Vector3[] normals = mesh.normals;

// edit the normals in an external array Quaternion rotation = Quaternion.AngleAxis(Time.deltaTime * speed, Vector3.up); for (int i = 0; i < normals.Length; i++) normals[i] = rotation * normals[i];

// assign the array of normals to the mesh mesh.normals = normals; } }

Примечание: Для изменения normals важно скопировать нормы из Mesh. После того, как normals были скопированы и изменены, normals могут быть переназначены обратно на Mesh.

Примечание: normals назначены вершинам, а не треугольникам.