using System.Collections; using System.Collections.Generic; using UnityEngine; // class と定義されている public class Sample : MonoBehaviour { }
ただし、「クラス」をゲームオブジェクトにアタッチしただけでは、それらのコンポーネントを変更するための権利がありません。
using System.Collections; using System.Collections.Generic; using UnityEngine; // publicでクラスは作成される = 外部からのアクセスを可能な状態にしている。 public class Sample : MonoBehaviour{ // クラス内の宣言フィールド(メソッドが始まる前の場所であればいい)で、型と変数をセットで宣言をする。ここで宣言した変数はメンバ変数と呼ばれる。 // まずは、このクラス内で使用する変数を宣言する。宣言と同時に初期化(イコール演算子を使っての代入)をしなければ、自動的に型に合わせた値が初期値として入る。 // 外部からアクセスしたい変数は修飾子をpublicで宣言をする。そうでない場合(クラス内でのみ使用し、外部からはアクセスさせない)はprivateで宣言する。 private int x; // このクラスでのみ使用可能。初期化と値の代入がないので、変数xの中身は初期値の0。 public float y = 5.5f; // このクラスで利用できる上に、外部からのアクセスも可能。初期化し代入しているので、変数yの中身は5.5。 public bool flag; // このクラスで利用できる上に、外部からのアクセスも可能。初期化と値の代入がないので、変数xの中身は初期値のfalse。 // 各コンポーネントやクラスの情報を利用する場合には、変数を用意して宣言する。 // ここにはコンポーネントやクラスを代入し、このクラス内で利用できる状態を作る。 // この時点では変数の中身は空(null)。 private ActionTest actionTest; // クラスの場合、型の部分にクラス名を書く。そのあとに変数を宣言する。 private Transform transform; // コンポーネントの場合、型の部分にコンポーネント名を書く。そのあとに変数を宣言する。 }
private int x; // [修飾子 型 変数] の順番で書き、宣言する。privateに関しては省略でき、その場合は[型 変数]の順番になる。 x = new int(); // 初期化 new + 型名()で書く。 x = 5; // 値を代入する。
public class Sample : MonoBehaviour{ string call; // privateを省略した宣言フィールドで変数の宣言。初期化の強制はない。値を代入すればその値が適用され、代入しなければ初期値が入る。 void Start() { string name = "佐藤さん"; // 型と変数の宣言し、値を代入。メソッド{ ]内で宣言しているため、この変数のスコープはこのメソッド{ }内のみになる。 call = "こんにちは"; // callには値が代入されていないため、ここで値を代入する。 Debug.Log(call); // callの値を確認する。 } // Update is called once per frame void Update() { if (call == "こんにちは") { // 条件に当てはまる場合には、{ }内の処理を行う。 string reply = "こんばんは"; // 型と変数の宣言し、値を代入。if文{ }の中で宣言しているので、この変数のスコープはif文の{ }中のみになる。 call = reply; // callにreplyの値を代入する。 Debug.Log(call); // callの値が変更されているか確認する。 } } }