i-school - Unity に用意されている戻り値のあるメソッド
 Unity には始めから多くのメソッドが用意されています。

 その中には戻り値のあるメソッドもあり、これらは、引数を入力値戻り値を出力値として処理を行ってくれる便利なものです。
今回はその中でも初心者の方でも利用する頻度の高いメソッドを紹介します。

 最初のうちは内容が難しいと思いますので、まずは Excel の関数をベースにした考え方で覚えていくと良いです。



Excel の関数


 Excel にも最初から多くの関数が用意されています。例えば Sum 関数を利用することで複数のセルの値を合計した値を取得出来ます。
この考え方が戻り値のあるメソッドにも共通して解釈可能です。


Sum 関数
 入力値 => 値を合計したいセル群
 出力値 => 合計値

 この考え方を利用して、戻り値のあるメソッドを紐解いていきます。


戻り値のあるメソッドの登場パターン


 戻り値のあるメソッドは、戻り値の型により利用する場所が決まります

 代入処理について利用する場合には、イコールから見て右辺に戻り値のあるメソッドを記述し、
その戻り値の型と左辺に用意した変数の型が合致すれば処理が成立します。


<代入処理での使用例>
 int x = Random.Range(-6, 7);

 Range メソッドの戻り値の型が int 型であるため、イコールの左辺に用意している int 型の x 変数への代入処理が成立します。

 イコールの右辺(代入したい値)の指定にメソッドがある場合、それは戻り値のあるメソッドとして解釈して問題ありません。



 そのほかにも if 文の条件式内や、引数の指定にも利用することが出来ます。
ただし読み解くのは難しいため、例文のみ提示しておきます。


<if 文の条件式での使用例>
 if(Random.Range(0, 10) > 3) {
      // Range メソッドの戻り値の値が 3 よりも大きい場合のみ、if の条件式が成立する

  }


<引数の指定での使用例>
  // Z 成分のみランダムな値とする
 transform.position = new Vector3(0, 0, Random.Range(-10.0f, 10.0f));


戻り値のあるメソッド(抜粋)

Random.Range() メソッド


 Random クラスに用意されているメソッドです。引数には2つの値を同じ型で指定します。指定可能な型は int 型か float 型のいずれかです。
実行すると、次のような処理を行います。


Random.Range() メソッド
 入力値(引数)  => int 型の2つの値か、float 型の2つの値を指定し、第1引数から第2引数までの範囲でランダムな1つの値を取得する
 出力値(戻り値) => 取得したランダムな値が、int 型の引数であれば、int 型の戻り値で戻す。float 型の引数であれば、float 型の戻り値で戻す

 使用例です。


  // 0 - 99 までの範囲からランダムな1つの値を取得して、value に代入する
  int value = Random.Range(0, 100); 


参考サイト
Unity 公式スクリプトリファレンス
Random.Range



GameObject.Find() メソッド


 GameObject クラスに用意されているメソッドです。実行すると、次のような処理を行います。


GameObject.Find() メソッド
 入力値(引数)  => ヒエラルキーにあるすべてのゲームオブジェクトを引数に指定した"名前"で検索する
 出力値(戻り値) => 検索にヒットしたゲームオブジェクトの情報を GameObject 型の情報としてフィードバックする

 使用例です。


  GameObject player; 

  void Start() {
      // ヒエラルキーにあるゲームオブジェクトをすべて名前で検索
      // "Catcher" という名前のゲームオブジェクトがあるかを探し、見つけたら戻り値として player 変数に代入する
      player = GameObject.Find("Catcher");
  }


参考サイト
Unity 公式スクリプトリファレンス
GameObject.Find



Object.Instantiate() メソッド


 Object クラス(GameObject クラスとはまた別です)に用意されているメソッドです。このメソッドは Object を省略して命令出来ます。
実行すると、次のような処理を行います。

Object.Instantiate() メソッド
 入力値(引数)  => 指定したゲームオブジェクトのクローンを1つ、複製(生成)する。主にプレファブを指定する
 出力値(戻り値) => 代入処理がある場合、引数に指定したゲームオブジェクトの型を戻り値として代入する

 使用例です。


<代入処理なし>
  GameObject playerPrefab; 

  void Start() {
      // playerPrefab 変数に代入されているゲームオブジェクトのクローンを1つ、複製(生成)する
      Instantiate(playerPrefab);
  }


<代入処理あり>
  GameObject playerPrefab; 

  void Start() {
      // playerPrefab 変数に代入されているゲームオブジェクトのクローンを1つ、複製(生成)するし、それを GameObject 型の戻り値として catcher 変数に代入する
      GameObject catcher = Instantiate(playerPrefab);
  }


参考サイト
Unity 公式スクリプトリファレンス
Object.Instantiate




 他にもあれば追加します。