Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Mesh.CombineMeshes

マニュアルに切り替える
public void CombineMeshes(CombineInstance[] combine, bool mergeSubMeshes = true, bool useMatrices = true);

パラメーター

combine 結合するメッシュの説明
mergeSubMeshes すべてのメッシュをひとつのサブメッシュに結合するか
useMatrices CombineInstance で提供された変換行列を使用するか、無視するか

説明

メッシュに複数のメッシュを組み合わせます

メッシュを結合することで、最適化につながります。 mergeSubMeshes が true である場合、すべてのメッシュはひとつのサブメッシュに結合されます。そうでない場合、 各メッシュは別のサブメッシュに結合されます。もしすべてのメッシュが同じマテリアルを共有している場合は true を設定してください。 もし useMatrices が false である場合 CombineInstance 構造体の変換行列は無視されます。

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(MeshFilter))] [RequireComponent(typeof(MeshRenderer))] public class ExampleClass : MonoBehaviour { void Start() { MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; int i = 0; while (i < meshFilters.Length) { combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = meshFilters[i].transform.localToWorldMatrix; meshFilters[i].gameObject.active = false; i++; } transform.GetComponent<MeshFilter>().mesh = new Mesh(); transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine); transform.gameObject.active = true; } }