Version: 2020.3
言語: 日本語
スクリプトの作成と使用
ランタイムのプレハブのインスタンス化

変数とインスペクター

スクリプトを作成すると、原則として他のコンポーネントと同じようにゲームオブジェクトにアタッチできる、独自の新しいコンポーネントを作成できます。

インスペクターで編集可能なプロパティを持つ他のコンポーネントと同様に、自分で作成したスクリプトも、インスペクターから編集することでスクリプト中の変数の値を変更できます。

using UnityEngine;
using System.Collections;

public class MainPlayer : MonoBehaviour 
{
    public string myName;
    
    // これを初期化に使用
    void Start () 
    {
        Debug.Log("I am alive and my name is " + myName);
    }
}

このコードは、インスペクター上では “My Name” と表示され、編集可能なテキストフィールドとなります。

インスペクターでは、変数名が一群のルールのいずれかに準拠している場合、スクリプトで定義したのとは異なる表示になる場合があります。

  • 先頭から “m_” を削除します。
  • 先頭から “k” を削除します。
  • 先頭から “_” を削除します。
  • 先頭の文字を大文字にします。
  • 小文字と大文字の間にスペースを加えます。
  • 頭文字と次の単語の先頭にある大文字の間にスペースを加えます。

“iPad” や “x64” など、これらのルールが適用されない特殊なケースもあります。

Unity は、変数名に大文字がある場合、スペースを加えてインスペクターのラベルに表示します。これは表示のために使用されるだけなので、コード内では必ず通常の変数名を使う必要があります。名称を変更して 再生ボタンを押すと、入力したテキストを含むメッセージが表示されます。

C# を使うとき、インスペクターで変数を確認する最も簡単な方法は、変数を public として宣言することです。別の方法として、SerializeField を使用することもできます。逆に、HideInInspector を使えば、public 変数がインスペクターに表示されるのを防ぐことができます。

Unity ではゲームの実行中にスクリプト変数の値を変更できます。これは停止、再起動をせずに変更の結果をすぐ確認できるので、とても便利です。ゲームプレイを終えると、変数の値は 実行する前の値にリセットされます。これにより、取り返しのつかないミスを恐れる事無く、自由にオブジェクト設定を調整することが可能になります。

スクリプトの作成と使用
ランタイムのプレハブのインスタンス化