メッシュフィルターに割り当てられた共有メッシュを返します
インポートしたアセットとこのメッシュの影響を受けているすべてのオブジェクトでメッシュの変更をしてから、 メッシュへ書き込みをせずに メッシュデータの読み込み だけを行うのみの場合は この関数を使用することをおすすめします。 また、行われたメッシュの変更は元に戻すことができないことに注意してください。
// Scales PERMANENTLY the size of the mesh by a factor. var scaleFactor : float = 2; function Start () { var mesh : Mesh = GetComponent(MeshFilter).sharedMesh; var vertices : Vector3[] = mesh.vertices; for (var p : int = 0; p < vertices.Length; p++) { vertices[p] *= scaleFactor; } mesh.vertices = vertices; mesh.RecalculateNormals(); }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public float scaleFactor = 2; void Start() { Mesh mesh = GetComponent<MeshFilter>().sharedMesh; Vector3[] vertices = mesh.vertices; int p = 0; while (p < vertices.Length) { vertices[p] *= scaleFactor; p++; } mesh.vertices = vertices; mesh.RecalculateNormals(); } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): public scaleFactor as float = 2 def Start() as void: mesh as Mesh = GetComponent[of MeshFilter]().sharedMesh vertices as (Vector3) = mesh.vertices p as int = 0 while p < vertices.Length: vertices[p] *= scaleFactor p++ mesh.vertices = vertices mesh.RecalculateNormals()