【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コンポーネントを見てみると、チェックが外れ、オフになっているのがわかりますね。
このようにして、スクリプトでオブジェクトのコンポーネントを取得することができます。