コース: Unity 2018 基本講座:プログラム

コンポーネントの基本となるMonoBehaviourとGameObjectを理解する - Unityのチュートリアル

コース: Unity 2018 基本講座:プログラム

コンポーネントの基本となるMonoBehaviourとGameObjectを理解する

このレッスンではコンポーネントの 基本となる MonoBehaviour と GameObject を解説します。 現在プロジェクトには 「MyScript」というコンポーネントを作り 空の GameObject、 MyScript にアタッチしてあります。 ではプログラムを開きます。 まず MonoBehaviour についてですが MyScript の横にも 書かれています。 こちら継承している という意味ですが MonoBehaviour の機能すべてを MyScript が受け継いでいる ということになります。 そして MonoBehaviour ですが これはコンポーネントの 元となります。 コンポーネントなので MonoBehaviour を継承していれば GameObject に アタッチできるということになります。 そして MonoBehaviour Start や Update が こちらに書かれていますが その他たくさんの メッセージを用意しています。 それが MonoBehaviour です。 そして MonoBehaviour コンポーネントから 自分が乗っている GameObject に アクセスしたいという場合には GameObject というプロパティから アクセスできます。 続いて GameObjectですが、 GameObject にある プロパティを見てみましょう。 print で tag というのがあるので tag を見てみます。 現在 MyScript に コンポーネントが乗っていて Start で tag を出力しました。 [Tag]自体は「Untacked」に なっていますので コンソールにも Untacked と出ました。 では Tag を変えてみましょう。 「Player」にしてみます。 Player と出るようになりました。 その他レイヤーなども出力、 設定できます。 続いてこちらの アクティブなんですけど これもスクリプトから アクセスできますので 見てみましょう。 ここでは自分自身ではなく 他のオブジェクトを アクティブかどうかチェックしたいので GameObject、 そして 「checkActiveGO」と 名前を付けました。 Inspector に表示させたいので public とします。 そしてこの checkActiveGO の activeInHierarchy というのをチェックしてみましょう。 これを毎フレームチェックしたいので Start ではなく Update の方に変えてみます。 activeInHierarchy ですが Hierarchy の中で 自分がアクティブになってるかどうか ということを返します。 それに対して自分自身だけの チェックであれば activeSelf というのもあります。 Unity に戻り、 MyScript の方に プロパティ、フィールドが増えましたので ここでは Light を入れてみましょう。 Light がアクティブかどうか チェックします。 再生します。 すると毎フレーム、 アクティブですよ。 true ですよというのが 出力されました。 では[Light] ここで切ってみます。 そうすると Light が消えて Skybox も自動的に暗くなり、 そして出力も false になりました。 このようにアクティブに アクセスができます。 このレッスンではコンポーネントの 基本となる MonoBehaviour と GameObject を解説しました。

目次