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