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

スクリプト言語

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

Mesh.CombineMeshes

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

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

パラメーター

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

説明

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

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

	@script RequireComponent(MeshFilter)
	@script RequireComponent(MeshRenderer)
	function Start () {
		var meshFilters: MeshFilter[] = GetComponentsInChildren(MeshFilter);
		var combine : CombineInstance[] = new CombineInstance[meshFilters.Length];
		for (var i = 0; i < meshFilters.Length; i++){
			combine[i].mesh = meshFilters[i].sharedMesh;
			combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
			meshFilters[i].gameObject.active = false;
		}
		transform.GetComponent.<MeshFilter>().mesh = new Mesh();
		transform.GetComponent.<MeshFilter>().mesh.CombineMeshes(combine);
		transform.gameObject.active = true;
	}
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; } }