▼そのUnityの作業、依頼しませんか?
メソッド

さくっと解説!Instantiateメソッドの説明、具体的な使い方を紹介【Unity】

Instantiateメソッドの説明
  • Instantiateメソッドってそもそもなに?
  • Instantiateの使い方を知りたい!

という悩みを解決します。

まずInstantiateを使えば、オブジェクトを生成してくれるメソッドです。

では見ていきましょう。

Instantiateはオブジェクトを生成してくれるメソッド

Instantiateを使うことでオブジェクトを生成することができます。とりあえずこのような認識で大丈夫です。

例えば「定期的に矢が落ちてくるようにする」ようなとき。このときにInstantiateを使えば、定期的に矢を落とすことができます。

他にも「プレイヤーと接触したときに障害物を生成する」や「爆弾を定期的に落とす」など、オブジェクトを生成することだったらInstantiateメソッドが使われます。

Instantiateの使い方

スクリプト

public GameObject obj;

このようにして生成すオブジェクトは取得済みであることが前提です。

Transformの値はそのままで生成

Instantiate(obj)

これでTransformの値はそのままでオブジェクトを生成できます。

Transformの値は変えて生成

Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f), Quaternion.identity);

Vector3の値を変更することで、生成したい場所にオブジェクトを生成することができます。「Quaternion.identity」は回転させないことを示しています。

Instantiate(obj)Transformの値をそのままで生成
Instantiate(生成するオブジェクト, 位置, 回転)オブジェクトを指定された位置、回転で生成する

Instantiateメソッドを実際に1から使う

Instantiateを使って立方体を生成していきます。Instantiateメソッドを使ってみたい人は、一緒にやってみてくださいませ。

プロジェクトを作成

プロジェクトを作成

3D用のプロジェクトを作成してください。

レイアウトは【2 by 3】です。見にくい方は【Unity】効率アップ!レイアウト(Layout)を変更してできる5個の開発画面で【2 by 3】に変更してください

プログラム実行用の空のオブジェクトを作成する

プログラム実行用の空のオブジェクトを作成する

【Hierarchy】→【Create】→【Create Empty】→【Rename】→【GameManager】

別に空のオブジェクトである必要はないのですが、わかりやすいように空のオブジェクトを使っていきます。名前は【GameManager】にします。

比較対象の立方体を作成する

比較対象の立方体を作成する

【Hierarchy】→【Create】→【Cube】

今回はInstantiateメソッドを使って立方体を生成していきますが、比較対象があったほうがわかりやすいです。その比較対象のための立方体を作成しています。

名前はCubeのままで構いません。

位置を調整する

位置を調整する 位置を調整する

【Cube選択】→【Inspector】→【Transformの値を上のようにする】

Cubeを作成した時点で上のような値になっている場合がほとんどです。もし違ったら、変更してください。

スクリプトを作成する

スクリプトを作成する

【Projectウィンドウ】→【Create】→【C#Script】→【名前はCubeGenerator】 

名前は「CubeGenerator」にしました。ではそのスクリプトをダブルクリックして、開いていきましょう。

スクリプトを記述

ここにボックスタイトルを入力

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CubeGenerator : MonoBehaviour {

    public GameObject target;

    // Use this for initialization
    void Start () {
        Instantiate(target, new Vector3(1.0f, 1.0f, 0.0f), Quaternion.identity);

    }
   
    // Update is called once per frame
    void Update () {
       
    }
}

Instantiate(生成するオブジェクト, 位置, 回転)オブジェクトを指定された位置、回転で生成する

 Instantiate(target, new Vector3(1.0f, 1.0f, 0.0f), Quaternion.identity);

第一引数で生成するオブジェクトを指定してます。ここではtargetを指定しています。targetの中身をあとでいれます。

第二引数で生成するオブジェクトの位置を指定してます。

第三引数では生成するオブジェクトの回転を指定することができます。「Quaternion.identity」は回転させないことを示しています。

スクリプトを「GameManager」にアタッチする

スクリプトを作成する

【CubeGeneratorをGameManagerにドラッグ&ドロップする】

スクリプト単体のまま、オブジェクト単体のままは意味がありません。スクリプトをオブジェクトにアタッチすることで、スクリプトの内容を実行できます。

アウトレット接続する

アウトレット接続する

【GameManager選択】→【Cubeをtargetにドラッグ&ドロップ】

スクリプトを書くところで「target」という変数を宣言しました。その「target」の中で生成したいオブジェクトを入れます。

実行してみる

ゲームを実行する

ゲーム実行ボタンを押して実行すると、こうなります。X:1,Y:1,Z=0の部分にオブジェクトができています。

まとめ

Instantiate(obj)Transformの値をそのままで生成
Instantiate(生成するオブジェクト, 位置, 回転)オブジェクトを指定された位置、回転で生成する

以上、Instantiateメソッドの説明と使い方です。

さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 一生無双モードで頑張る。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...
ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるサンプルゲームとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>BOOTHでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください