Описание
Возвращает экземпляр Mesh, назначенный фильтру сетки.
Если фильтру сетки не назначена сетка, будет создана и назначена новая сетка.
Если сетка уже назначена фильтру сетки, то первый запрос свойства mesh
создаст ее дубликат, и эта копия будет возвращена. Дальнейшие запросы свойства mesh
вернут этот дублированный экземпляр сетки. После запроса свойства mesh
ссылка на исходную общую сетку теряется, и свойство MeshFilter.sharedMesh становится псевдонимом для сетка
. Если вы хотите избежать автоматического дублирования сетки, используйте MeshFilter.sharedMesh.
Используя свойство mesh
, вы можете изменить сетку только для одного объекта. Другие объекты, использующие ту же сетку, не будут изменены.
Вы несете ответственность за уничтожение автоматически создаваемого меша при уничтожении игрового объекта. Resources.UnloadUnusedAssets также уничтожает сетку, но обычно вызывается только при загрузке нового уровня.
Рассматривайте свойство mesh
как ярлык для следующего кода:
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
void Start()
{
Mesh mesh = GetComponent<MeshFilter>().sharedMesh;
Mesh mesh2 = Instantiate(mesh);
GetComponent<MeshFilter>().sharedMesh = mesh2;
}
}
Вызывается при первом запросе свойства mesh
.
Примечание.
Если MeshFilter является частью объекта актива, запрос свойства mesh
не разрешен, и может быть назначена только сетка актива. р>
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
// Искажает сетку по вертикали.
void Update()
{
// Получить конкретизированный меш
Mesh mesh = GetComponent<MeshFilter>().mesh;
// Произвольно меняем вершины
Vector3[] vertices = mesh.vertices;
int p = 0;
while (p < vertices.Length)
{
vertices[p] += new Vector3(0, Random.Range(-0.3F, 0.3F), 0);
p++;
}
mesh.vertices = vertices;
mesh.RecalculateNormals();
}
}
Смотрите так же: Mesh class.