【Unity入門】他のオブジェクトを取得する方法
スクリプトで他のオブジェクトを取得することができます。
やり方は、publicをつけたGameObject型の変数を作って、取得したいオブジェクトをUnityエディタから指定するだけです。
この記事の目次
実際にやってみる
準備
それでは、実際にオブジェクトに力を加えてみましょう。
まずは、以前作成した、『Unity Basics』というプロジェクトを開いてください。
『Unity Basics』を開いたら、他のオブジェクトを取得するシーンを作りましょう。
Scenesフォルダの中に作成します。
ProjectウィンドウでScenesフォルダを選択しましょう。
選択した状態で『+』ボタンを押しましょう。
色々と出てくるので、
『Scene』をクリックしましょう。
すると、Scenesフォルダの中に
新しくSceneが作成されます。
Sceneの名前を『OtherObject』に変更しておきましょう。
今回は『OtherObject』の中でやっていきたいので、Sceneを移動します。
『OtherObject』をダブルクリックしましょう。
すると、Sceceを移動することができます。
Hierarchyウィンドウを見ると、現在のSceneが『OtherObject』に変わっていますね。
次に他のオブジェクトを取得するスクリプトを作りましょう。
Scriptsフォルダを選択してください。
選択した状態で『+』ボタンを押しましょう。
色々と出てくるので『C# Scripts』を選択します。
すると、新しくスクリプトが作成されます。
名前が確定してしまう前に『OtherObject』と変更しましょう。
名前を変更したら、スクリプトを編集していきましょう。
OtherObjectをダブルクリックしてください。
すると、VIsual Studioが起動して、OtherObjectを編集できるようになります。
他のオブジェクトを取得してみる
それでは、他のオブジェクトを取得していきましょう。
今回は他のオブジェクトを取得して、その名前をコンソールに出力してみようと思います。
まずは、先ほど作ったスクリプトを適当なオブジェクトに追加します。
今回はDirectional Lightに追加しましょう。
スクリプトOtherObjectをDirectional Lightにドラッグ&ドロップしましょう。
すると、Directional LightにOtherObjectが追加されます。
それでは、他のオブジェクト、今回であればMain Cameraを取得して、その名前をコンソールに出力してみましょう。
Start関数の上に
public GameObject mainCamera; |
と記述しましょう。
コードについて説明していきます。
このコードはGameObject型の
mainCamera
という変数を作るという内容です。
publicがついているので、
Unityエディタで値を格納することができます。
実際に値を格納してみましょう。
スクリプトを保存して、Unityエディタに戻りましょう。
Unityエディタに戻ったらDirectional Lightを選択しましょう。
Directional LightについているOtherObjectを見てみると、
Main Cameraという項目ができているのがわかります。
ここに指定したオブジェクトがスクリプトに記述したmainCameraという変数に格納されます。
それでは、オブジェクトMain Cameraを指定しましょう。
オブジェクトMain CameraをMain Cameraという項目にドラッグ&ドロップしてください。
すると、mainCameraという変数にMain Cameraというオブジェクトが格納されます。
これで、オブジェクトMain Cameraを取得することができました。
スタート時にMain Cameraの名前がコンソールに表示されるようにしてみましょう。
Debug.Log(mainCamera.name); |
と記述しましょう。
コードについて説明しておきます。
このコードは、mainCameraの名前を
コンソールに出力する
といった内容です。
mainCameraは
GameObject型の変数で
UnityエディタからMain Cameraオブジェクトを格納しました。
この状態で実行すると、ゲームスタート時にコンソールに『Main Camera』と出力されるはずです。
実際にそうなるのか実行して確かめてみましょう。
スクリプトを保存してUnityエディタに戻りましょう。
Unityエディタに戻ったら再生ボタンを押しましょう。
すると、予想通りコンソールには『Main Camera』と出力されますね。
このようにして、スクリプトで他のオブジェクトを取得します。