WisdomSoft - for your serial experiences.

プリミティブの生成

立方体や球体といった基本的な 3D モデルであればスクリプトから容易に生成できます。

基本的な 3D モデル

Unity エディタ上の「GameObject」メニューから追加できる立方体や球体といった基本的なモデルはスクリプトからも簡単に生成できます。スクリプトからこうした基本モデル(プリミティブ)を追加するには GameObject クラスの CreatePrimitive() メソッドを呼び出します。

GameObject クラス CreatePrimitive() メソッド
public static GameObject CreatePrimitive(PrimitiveType type)

type パラメータには生成する図形の種類を指定します。この値は UnityEngine.PrimitiveType 列挙体のメンバのいずれかです。メソッドは、指定された型のプリミティブを生成し、結果を返します。

UnityEngine.PrimitiveType 列挙体
enum PrimitiveType
PrimitiveType 列挙体のメンバ
メンバ名 説明 プリミティブ
Capsule カプセル型のプリミティブを表します。 カプセル型のプリミティブ
Cube 立方体のプリミティブを表します。 立方体のプリミティブ
Cylinder 筒状のプリミティブを表します。 筒状のプリミティブ
Plane 平面のプリミティブを表します。 平面のプリミティブ
Sphere 球体のプリミティブを表します。 球体のプリミティブ
Quad 4頂点、2ポリゴンで構成される平面のプリミティブを表します。 球体のプリミティブ

CreatePrimitive() メソッドで生成するようなオブジェクトは GameObject クラスのコンストラクタで生成した空のゲームオブジェクトからでも構築できますが、メッシュなどの面倒な設定を行う必要がないため簡単です。

生成されたゲームオブジェクトはワールド座標の原点に生成されます。

コード1
using UnityEngine;

public class Test : MonoBehaviour
{
	void Start()
	{
		GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
		GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
		GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
		GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
		GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
		
		capsule.transform.Translate(2, 1, 0);
		cube.transform.Translate(0, 0.5F, 0);
		cylinder.transform.Translate(-2, 1, 0);
		sphere.transform.Translate(0, 2, 0);
	}
}
実行結果
コード1 実行結果

コード1は PrimitiveType 列挙体で用意された各プリミティブを CreatePrimitive() メソッドで生成します。スクリプトを実行すると、シーン内に各種プリミティブを描画するゲームオブジェクトが追加されることが確認できます。