スクリプトからオブジェクトを生成する方法
Instantiate
関数を使用してオブジェクトを生成します。この関数は、生成したいオブジェクトのプレハブ(Prefab)を指定します。
Instantiate("生成したいオブジェクト");
以下はコード例です。これを適当なゲームオブジェクトに追加して、インスペクターに生成したいオブジェクトのプレハブを設定します。
スペースキーを押すとオブジェクトを生成します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GenerateObject : MonoBehaviour
{
public GameObject prefab;
// Update is called once per frame
void Update()
{
// スペースキーが押されたらオブジェクトを生成
if (Input.GetKeyDown(KeyCode.Space))
{
Instantiate(prefab);
}
}
}
位置や角度を指定する方法
関数の引数に位置や角度も指定することができます。第一引数に、生成したいオブジェクト、第二引数で位置、第三引数で角度を設定できます。
// オブジェクトのプレハブを指定して生成
GameObject newObject = Instantiate(prefabObject, spawnPosition, Quaternion.identity);
使用例
以下のスクリプトを Unity エディタ内の GameObject にアタッチすると、Start
メソッドが実行され、指定したプレハブ prefabObject
が、指定した位置 spawnPosition
、角度 rotationAngleで生成されます。
using UnityEngine;
public class GenerateObject : MonoBehaviour
{
public GameObject prefabObject; // 生成するオブジェクトのプレハブ
public Vector3 spawnPosition = new Vector3(0f, 0f, 0f); // 生成する位置
public float rotationAngle = 0f; // 指定する角度
// Update is called once per frame
void Update()
{
// スペースキーが押されたらオブジェクトを生成
if (Input.GetKeyDown(KeyCode.Space))
{
// オブジェクトのプレハブを指定して生成し、指定した角度で回転
GameObject newObject = Instantiate(prefabObject, spawnPosition, Quaternion.Euler(0f, rotationAngle, 0f));
}
}
}
インスペクターから角度、位置が調節できます。
オブジェクトを削除するには
オブジェクトの削除には、Destroy関数を使用します。
Destroy("削除したいオブジェクト");