【Unity入門】オブジェクトのコンポーネントを取得する方法

スクリプトでオブジェクトについているコンポーネントを取得することができます。

やり方は、

コンポーネントの型 変数名 = オブジェクト.GetComponent<コンポーネント名>();

と記述するだけです。

実際にやってみる

準備

それでは、実際にオブジェクトのコンポーネントを取得してみましょう。

まずは、以前作成した、『Unity Basics』というプロジェクトを開いてください。

『Unity Basics』を開いたら、オブジェクトのコンポーネントを取得するシーンを作りましょう。

Scenesフォルダの中に作成します。

ProjectウィンドウでScenesフォルダを選択しましょう。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので、

『Scene』をクリックしましょう。

すると、Scenesフォルダの中に

新しくSceneが作成されます。

Sceneの名前を『Component』に変更しておきましょう。

今回は『Component』の中でやっていきたいので、Sceneを移動します。

『Component』をダブルクリックしましょう。

すると、Sceceを移動することができます。

Hierarchyウィンドウを見ると、現在のSceneが『Component』に変わっていますね。

次にオブジェクトのコンポーネントを取得するスクリプトを作りましょう。

Scriptsフォルダを選択してください。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので『C# Scripts』を選択します。

すると、新しくスクリプトが作成されます。

名前が確定してしまう前に『ComponentScript』と変更しましょう。

名前を変更したら、スクリプトを編集していきましょう。

ComponentScriptをダブルクリックしてください。

すると、VIsual Studioが起動して、ComponentScriptを編集できるようになります。

オブジェクトのコンポーネントを取得してみる

それでは、実際にオブジェクトのコンポーネントを取得してみましょう。

今回はMain CameraのCameraコンポーネントを取得して、スタートと同時にオフにしてみようと思います。

まずは、Main Cameraにスクリプトを追加しましょう。

ComponentScriptをMain Cameraにドラッグ&ドロップしましょう。

すると、Main CameraにComponentScriptが追加されます。

それでは、コードを書いていきましょう。

まずはCameraコンポーネントを取得してみようと思います。

Camera camera = gameObject.GetComponent<Camera>();

と記述しましょう。

コードについて説明していきます。

まず、gameObjectというのは

スクリプトを追加したオブジェクトのことです。

今回は、Main Cameraに追加したので、Main Cameraのことです。

次にGetComponent()というのは

オブジェクトについているコンポーネントを取得する関数です。

どのオブジェクトを取得するかは<>で囲って指定します。

今回はCameraを囲っているので、

Main CameraのCameraコンポーネントを取得します。

取得したCameraコンポーネントはCamera型

変数cameraの中に格納しています。

次に取得したCameraコンポーネントを使って、オフにしてみましょう。

camera.enabled = false;

と記述しましょう。

コードについて説明していきます。

まず、cameraというのは

Cameraコンポーネントを格納した変数のことです。

.enableをつけることでコンポーネントのオンオフを切り替えることができます。

オンにしたいときは『true』、オフにしたいときは『false』にします。

今回はfalseにしたので、

この状態で実行すると、スタート時にMain CameraのCameraコンポーネントがオフになって、Gameビューには何も表示されなくなるはずです。

実際にそうなるのか、実行して確かめてみましょう。

スクリプトを保存して、Unityエディタに戻りましょう。

Unityエディタに戻ったら、再生ボタンを押しましょう。

すると、予想通りGameビューには何も表示されなくなりました。

また、Main CameraのCameraコンポーネントを見てみると、チェックが外れ、オフになっているのがわかりますね。

このようにして、スクリプトでオブジェクトのコンポーネントを取得することができます。