Unityのインスペクタでスクリプトのチェック項目が表示されない

Unityではスクリプトを作成し、何らかのゲームオブジェクトに設定して使用する事がほとんどです。

わたくしは元々JavaScript(UnityScript)でスクリプトを記述していたので全然気が付かなかったんですが、

C#でスクリプトを記述しているとこれはUnityのEditorの不具合!?

と思うような事が起きました。

スポンサーリンク

インスペクタでスクリプトのチェック項目が表示されない

C#でスクリプトを記述しゲームオブジェクトに設定するとインスペクタでスクリプトのチェック項目(スクリプトの有効・無効の切り替え)が表示されていない事がありました。

スクリプトを作成し何らかのゲームオブジェクトに設定すると

デフォルトのスクリプトをゲームオブジェクトに設定

↑のようにC#もJavaScriptで作成したスクリプト両方ともチェック項目が表示されています。

スクリプトのチェック項目が表示されない

しかしC#スクリプトでも↑のようにチェック項目が表示されない事があります。

C#でほとんどスクリプトを組んでこなかったわたくしにはなぜこうなるのか?が全然わかりませんでしたが、ある事をするとこうなるようです。

チェック項目が表示されなくなる理由

チェック項目が表示されなくなる理由はMonoBehaviourクラスを継承して作成したクラスで

Start()、Awake()、Update()、FixedUpdate()、OnGUI()

のいずれかのメソッドが定義されていないとチェック項目が表示されなくなるようです。

Unity のマニュアルは、Unityの使い方を学ぶ手助けとなります。Unityを使って 2D や 3D ゲームを作成したり、ゲーム以外のアプリを作成したりして多くの経験を積みましょう。

その為、スクリプトをオン・オフしたいけどチェック項目が表示されなくて困っている場合は先ほどのいずれかのメソッドを定義すれば項目が表示されるようになります。

んーでも、さきほど紹介したMonoBehaviourクラスのメソッドを使わないのであればチェック項目自体のオン・オフをする必要はないかもしれません。

↑のように使わなくてもStartメソッドの定義等をしておけばインスペクタでチェック項目が表示されるようになります。

終わりに

最近C#でスクリプトを組むことが多くなってきて、その際にインスペクタでC#のスクリプトのチェック項目が表示されているものといないものの違いがわからず調べてみました。

JavaScriptでスクリプトを書いた場合は中身を全て消してもチェック項目は表示されました。

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます