CombineInstance
структура в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
Структура, описывающая один меш, который нужно объединить с другими экземплярами в общий меш.
Используйте это CombineInstance структура с Mesh.CombineMeshes метод для объединения нескольких мешей в одну комбинированную меш. Вы должны создать CombineInstance для каждой меши, которую вы хотите объединить. Если меш содержит несколько подсеток, вы должны создать отдельную CombineInstance для каждой подсетки.
using UnityEngine;
// This script combines the meshes from children into a single new Mesh. // The combined mesh is assigned to the MeshFilter of this GameObject. // The original meshes are not destroyed, but their GameObjects are disabled.
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))] public class ExampleClass : MonoBehaviour { void Start() { MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] instances = new CombineInstance[meshFilters.Length];
for (int i = 0; i < meshFilters.Length; i++) { var meshFilter = meshFilters[i]; instances[i] = new CombineInstance { mesh = meshFilter.sharedMesh, transform = meshFilter.transform.localToWorldMatrix, };
meshFilter.gameObject.SetActive(false); }
Mesh combinedMesh = new Mesh(); combinedMesh.CombineMeshes(instances); gameObject.GetComponent<MeshFilter>().sharedMesh = combinedMesh; gameObject.SetActive(true); } }
Дополнительные ресурсы: ,Mesh.CombineMeshes,, ,Mesh.subMeshCount,.
Свойства
| Свойство | Описание |
|---|---|
| lightmapScaleOffset | Запечённая карта освещения UV масштаба и смещения применяется к Mesh. |
| mesh | Меш, которая будет комбинироваться с другими мешами. |
| realtimeLightmapScaleOffset | Масштабирование и смещение в реальном времени UV применяется к сетке. |
| subMeshIndex | Индекс подсетки, которая будет объединена с другими мешами. |
| transform | Матрица, используемая для преобразования вершин до объединения мешей. |