チャムコード

チャーさんのUnityゲームラボです。Unityでゲーム制作する時に使うコードやノウハウをメインに発信しています。Unityでゲーム制作したいと思っているなら読んでください。

Unity初心者用基礎知識

unityで他のオブジェクトを取得する方法

投稿日:2020年3月21日 更新日:

うもチャーさんです。

 

あなたはunityで他のオブジェクトを

取得したいがわからず困ってますか?

 

この記事では、unityで他のオブジェクトを

取得する方法を書いてます。

 

 

なので読めば、あなたは他のオブジェクトを

自由に取得できるようになります。

 

ので、unityで他のオブジェクトを取得したいなら、

このまま下にスクロールして読んでください。

 

unityで他のオブジェクトを取得するには

 

unityで他のオブジェクトを取得するには、

以下の2通りのやり方があります。

 

1つ目の方法はpublic GameObject 変数名;

で宣言したのちに、インスペクタ上で

取得したいオブジェクトをドラッグ&ドロップです。

 

2つ目は同じく変数宣言ののちに、

変数名 = GameObject.Find(“ここに取得したいオブジェクト名”);

で取得可能です。

 

 

なぜこの方法なのかという補足を少しすると、

unityではインスペクタ上でオブジェクトを

取得できる仕組みがありまして、

 

それを使えば他のオブジェクトを取得できます。

 

 

またそれとは別に、オブジェクトを取得する関数も

用意されており、それがGameObject.Find()という関数です。

 

これを使えば他のオブジェクトを取得できるので、

どちらかのやり方を使いましょう。

 

具体的なやり方の説明はここから

 

でここからは、具体的に上記のやり方を

画像などを持って説明していきます。

 

インスペクタ上で取得の場合

 

まず1つ目のやり方ですが、

まずはオブジェクトにスクリプトを

つけたのちに、スクリプト内に以下のように書きます。

 

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

public class textTest : MonoBehaviour {

    //↓これでgameobject型の変数宣言
    public GameObject obj;

}

 

スクリプトを書くと言っても変数宣言するだけでいいので、

あんまりスクリプト詳しくない場合はこっちが楽です。

 

注1)オブジェクトを取得する際は、

変数型を合わせる必要があるので、

変数名(obj)の前に書く変数型にGameObjectと書くこと。

 

 

でこのようにスクリプトに書いてやると、

スクリプトをつけたオブジェクトの、

スクリプトコンポーネントの所に、

 

以下の画像のように、スクリプトに書いた

変数名(obj)と、その横にフィールド(Noneて書いてるとこ)

が用意されます。

 

unity インスペクタで他のオブジェクトを取得

 

 

で、あとは、この新しくできたフィールド内に、

ヒエラルキー上にあるゲームオブジェクト

(取得したいオブジェクト)をドラッグして、

 

インスペクター上のこのNoneて書いてる

フィールド上にドロップすればOKです。

 

すると他のオブジェクトを取得したことに

なります。

 

 

unityはこの辺楽でして、

インスペクター上で他のオブジェクトを

取得できるようになってます。

 

GameObject.Find()関数を使う場合

 

で2つ目の方法ですが、

こちらは変数宣言した後に、

GameObject.Find()関数というのを使うやり方です。

 

コードは以下のように書けばokです。

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

public class textTest : MonoBehaviour {

    //↓これでgameobject型の変数宣言
    public GameObject obj;

    void Start () {
        obj = GameObject.Find (Knight Warrior);
        //↑この関数でオブジェクトを取得できる

()内に取得したいゲームオブジェクトの名前を入力
    }

 

です。

 

注(Knight Warriorは例ですので、

あなたのが実際やる場合はヒエラルキー上にある、

ゲームオブジェクトで取得したいオブジェクトの名前を

コピーしてGameObject.Findの(“”)内のとこにコピペしましょう。)

 

でこれをスクリプト内に書いておけば、

あなたが取得したい他のオブジェクトを

取得することが可能です。

 

 

ちなみにGameObject.Find()関数を使うなら、

上記のように変数に代入しておくことをお勧めします。

 

というのも他のオブジェクトを取得したら、

そのあと色々コンポーネントを取得したり

値をスクリプトで変えていくことになるので、

 

コードが変に長くなりません。

上記説明ではよくわからない場合もあるかもですが、

とりあえず変数に格納しておきましょう。

 

 

で話戻りますが、他のオブジェクトを取得する際、

やり方が2つありますが、

 

結果的には同じなので、あなた的にやりやすい方で

やると良いでしょう。

 

 

まとめ

 

ということでまとめに入ります。

unityで他のオブジェクトを取得するには、

 

1、public GameObject 変数名;

で宣言したのちに、インスペクタ上で

取得したいオブジェクトをドラッグ&ドロップ。

 

2、変数宣言ののちに、

変数名 = GameObject.Find(“ここに取得したいオブジェクト名”);

で取得。

 

のどちらかを使えば可能です。

 

 

ということで、早速本記事の内容を実践し、

unityで他のオブジェクトを取得してみましょう。

 

取得したあとは取得したオブジェクトの

コンポーネントをスクリプトでいじれるので、

ゲームっぽくしたりもできますよ。

 

ということで読んでもらってありがとうございました。

 

チャーさん

 

 

-Unity初心者用基礎知識

関連記事

no image

unityでオブジェクトを回転させる方法「1分でできます」

どうも、チャーさんです。   あなたはunityでオブジェクトを回転させたいですか?   unityでゲームなど作るとオブジェクトを 回転させたい場面がありますよね。   …

no image

Unityでオブジェクトに重力を1分以内につける方法

  どうも、チャーさん(@chaa___san)です。   あなたはUnityでオブジェクトに重力をつけたいですか?   この記事ではUnityでオブジェクトに、 重力を …

no image

unityアセットの使い方を初心者でもわかるように説明。

  どうも、チャーさんです。   あなたはunityのアセットの使い方が、 わからず困ってませんか?   この記事ではunityのアセットの使い方を、 1から説明してます …

no image

unityでコンポーネントを取得する方法を詳しく解説

どうも、チャーさんです。 あなたはunityでコンポーネントを取得する方法を 探していますか?   この記事ではコンポーネントを取得する方法、 その際の変数宣言の書き方や、 コンポーネント名 …

no image

unityでオブジェクトを移動させたい人は読んでください。

どうも、チャーさんです。   あなたはunityでオブジェクトや、 プレイヤーなど自由自在に移動させたい、 そう思っていませんか?     キーボードの上下左右の矢印ボタ …

no image

unityでオブジェクトをスクリプトで削除する方法

どうも、チャーさんです。   あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか?   この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …

最新記事

チャーさん

Unityに関する記事を書いてます。

 

[簡単な経歴]

 

2018年-プログラムを始めUnityの存在を知りハマる。

2019年-エンジニアとして仕事開始(web系)

2021年-UnityでVR開発等にも手を出し始める。

現在-エンジニアとして活動しながらUnityも続行中。

 

youtubeでは、Unityに関する動画をあげてるので、

あなたのUnityスキルアップにどうぞ。