メソッド

メソッドとは

複数の処理がまとまった命令文の塊をメソッドと呼びます。

出力で使用したprint("こんにちわ");のプログラムは、最も簡単なメソッドを実行しています。 C#でメソッドを実行する際の基本的な書き方を理解しておきましょう。

print("こんにちわ");
  • printというメソッドが実行されている
  • (*)はメソッドに引数を渡して実行している
  • 行の末尾には必ず;が入る

printはあらかじめMonoBehaviourクラスに用意されているメソッドなので上記の呼び出しだけで実行できますが、メソッドは下記のように自分で自由に新しくつくる事が可能です。 宣言するメソッドで使われている文字の意味を理解しておきましょう。

void NewMethod () {
  print ("新しく作成したメソッド");
}
  • void はメソッドが実行された後に返す値の型(戻り値の型)。何も返さない場合には void
  • NewMethodはメソッドの名前、(いくつかの禁止されている文字列以外で)自由に名前をつける事ができます。
  • ()にはこのメソッドに値を渡す場合に使用します。
  • { ... }の中にはメソッドの本体、実行したい内容を記述します。

新しく作成したメソッドはprint();と同様にNewMethod();として呼び出す事が可能です。

メソッドを作ろう

一番シンプルなメソッドの構造になります。

public class MethodTest : MonoBehaviour {
  void Start () {
    //メソッドを実行
    NewMethod ();
  }

  //メソッドを宣言
  void NewMethod () {
    //メソッドの中身
    //サンプルでは文字を出力するだけ
    print ("新しく作成したメソッド");
  }
}

メソッドに値を渡してみよう

メソッドには値を渡す事ができるようになっています。 値を渡せば、同じ構文のメソッドでもそれぞれ別の動作を起こす事ができるようになります。

public class MethodTest : MonoBehaviour {
  void Start () {
    //メソッドを実行
    VariableMethod (10);
  }

  //メソッドを作成、引数としてintが渡せるようにしている
  void VariableMethod (int count) {
    //メソッドの中身
    //サンプルでは渡された値の10倍の数値を出力する
    print (count * 10);
  }
}

値を返すメソッドを作成してみよう

メソッドは実行後に値を返すようにすることが可能です。 演算結果などをメソッドの外から知ることができます。

public class ProgramingTest : MonoBehaviour {

  void Start () {
    // メソッドを実行。int型の値が返ってくるのでint型の変数を合わせて宣言している
    int num = ReturnMethod (10);

    //変数の中身を出力
    print(num);
  }

  // メソッドを作成、int型が返されるようになっている
  int ReturnMethod (int count) {
    // メソッドの中身
    // サンプルでは渡された値の10倍の数値を返す
    int returnInt = count * 10;
    return returnInt;
  }
}

メソッドとは(その2)

メソッドに引数を渡したり、値を返したりすると最終的に下記のようなプログラムになりました。 最初に説明した内容と一部重複しますが、それぞれの文字の意味を知り、メソッドの構造を理解しておきましょう。

int NewMethod (int count) {
  return count * 10;
}
  • 一番最初の int はメソッドが実行された後に返す値の型(戻り値の型)。何も返さない場合には void
  • NewMethodはメソッドの名前、(いくつかの禁止されている文字列以外で)自由に名前をつける事ができます。
  • () にはこのメソッドに値を渡す場合の引数を記載します。int count と書くと int 型の数値を受け取り、メソッド内ではそれを count という名前の変数として利用します。
  • { ... }の中にはメソッドの本体、実行したい内容を記述します。
  • メソッドの最後にはreturnを記載し、その後に返す値を記述します。