Help us understand the problem. What is going on with this article?

オブジェクト生成の仕方 Instantiate

More than 3 years have passed since last update.

UnityでInstantiateメソッドを使ってオブジェクトを生成するやり方を解説します.

生成する対象はあらかじめ取得してあるとします.

public GameObject obj;

Prefabから生成する.

PrefabのTransformのままで生成する場合

Instantiate(obj);

引数には生成したいオブジェクトが入る.

生成する位置,回転を指定して生成する場合

例としてスクリプトをつけたオブジェクトの位置で,Prefabと同様の回転で生成する.

Instantiate(obj, this.transform.position, Quaternion.identity);

スクリプト例

InstantiateTest.cs
using UnityEngine;
using System.Collections;

public class InstantiateTest : MonoBehaviour {

    //生成するゲームオブジェクト
    public GameObject target;

    void Update(){
        //スペースを押したら
        if (Input.GetKeyDown (KeyCode.Space)) {
            //Instantiate( 生成するオブジェクト,  場所, 回転 );  回転はそのままなら↓
            Instantiate (target, new Vector3 (1.0f, 2.0f, 0.0f), Quaternion.identity);
        }
    }
}

Instantiate(生成するオブジェクト, 生成する位置, 回転)

第一引数は生成するオブジェクトを指定する.
今回はobjを生成するため,objをつっこむ.

第二引数は生成する場所をVector3型で指定する.
今回はthis.transform.position

第三引数は生成するオブジェクトの回転を指定する.
今回はPrefabと同じままの回転にするために
Quaternion.identityをつっこむ.

生成したオブジェクトになんらかの処理を行いたい場合

例えば,生成したオブジェクトの名前を変更する処理を行うとする.
弾丸を生成し,その弾丸の名前を"Bullet"にしたい場合,以下のスクリプトでできる.

//オブジェクトを変数名bulletで生成
GameObject bullet = Instantiate(obj) as GameObject;
//名前を変更
bullet.name = "Bullet";

GetComponentやSendMessageを用いて関数を呼び出したりできる.

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした