上手に使えてる?メソッドの基本について学ぼう!

毎回処理ごとに同じスクリプトを書く手間を省くために、Unityには決まった処理を登録し呼び出すことができるメソッドという仕組みが備わっています

今回は、そんな便利なメソッドの基礎的な内容について説明していきます。

メソッドについて学ぼう!

それでは早速メソッドについて学んでいきましょう。

メソッドとは何だろう?

メソッドとは冒頭でも述べた通り、「決まった処理を登録し、その処理を呼び出すことができる仕組み」のことです。メソッドでは、呼び出す際に値を指定したり、処理後にメソッドから値を出力させることもできます

前者のメソッドに引き渡す値のことを引数(ひきすう)メソッドから出力される値のことを返り値(かえりち)と呼びます。

よく使う決められた処理はメソッドとして定義しておき、使用したいときに値を引数として渡すことでプロジェクト全体で書くスクリプトの量を減らすことができます。

メソッドは処理を登録して呼び出す仕組み

メソッドに関して大切なのは、定義しただけではスクリプト内で処理されず、それを呼び出す記述が必要になるという点です

 ポイント
メソッドは定義と処理の記述の2つからなる

メソッドの記述の仕方

メソッドの記述の仕方は次のようになります。

今のところはこれを全て覚える必要はありません。また、引数と返り値は必ずしも必要な要素ではないので省略することも可能です。

引数は複数定義することが可能ですが、返り値は1つしか指定できないということはおさえておきましょう。

ポイント
・引数と返り値は省略可能

・引数は複数指定できるが、返り値は1つのみ

引数も返り値も存在しないメソッド

メソッドの基本的内容を押さえたところで、メソッドのもっとも基本的な形である引数も返り値も存在しないメソッドを試してみましょう。

メソッドの基本形!

引数も返り値も存在しないメソッドは、メソッドにおいてもっとも基本的な形になります。引数を指定場合は、返り値の型はvoid型になります。voidは返り値がないということを意味します。

また、引数を指定しない場合でもメソッド名の後の()は必要になるので忘れないようにしましょう。

 

以下、引数・返り値ともに無い場合のメソッドの注意点についてまとめておきます。

 

ポイント

・返り値のない場合の型はvoid型
・関数名の後の()をつけ忘れない!
・メソッドの定義の後、呼び出されて初めて実行される!

スクリプトを試してみよう!

それでは、メソッドの基本形の引数・返り値がない場合のメソッドのスクリプトを試していきましょう。まずはサンプルコードを試すために、新しくプロジェクトを立ち上げます。今回は3Dで、プロジェクト名はお好きなもので構いません。

 

プロジェクトを立ち上げたら、以下のようにヒエラルキーウィンドウで右クリックし、「3D Object」から「Cube」を作成します。

続いて、プロジェクトウィンドウ上で右クリックし、C#スクリプトを作成し、名前を「Test」に変更します。

最後に作成したスクリプトファイルをドラッグ&ドロップで、Cubeオブジェクトにアタッチします。

これでスクリプトを試す準備は完了です。

 

スクリプトを試す準備が完了したら作成したスクリプトファイルを開き、以下のように内容を変更してください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    void Like(){
        Debug.Log("私はりんごが好きです");
    }//Likeメソッドの定義

    // Use this for initialization
    void Start()
    {
        Like();//Likeメソッドを呼び出す
    }

}

 

実際にプロジェクトを再生してみて、画像のようにコンソールウィンドウ上に「私はりんごが好きです」と出力されれば成功です。

引数の存在するメソッド

続いては、引数の存在するメソッドを試してみましょう。

引数はメソッドに送る値のこと

引数とは、メソッドに送る値のことでした。引数を用いることで、メソッド毎に異なる数値で計算を行ったり、表示する文字列を変更したりすることができます。

引数を使用する際のポイントは次のようになります。

ポイント

・引数の型に注意する
・引数の間は,(コンマ)で区切る

スクリプトを試してみよう!

それでは、実際に引数の存在するスクリプトを試してみます。

ここでは、先ほど作ったメソッドを引数を用いて少しだけ改変してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    void LikeFood(string food){//string型の引数foodを用いて、食べ物の部分を変更できるようにする
        Debug.Log("私は" + food + "が好きです");
    }

    // Use this for initialization
    void Start()
    {
        LikeFood("みかん");//引数foodにstring型のみかんを代入する
    }

}

 

このように「私はみかんが好きです」と出力されれば成功です。

LikeFoodメソッドの()内を変更することで、好きな食べ物を変えたりすることができます。

引数も返り値も存在するメソッド

最後に引数も返り値も存在するメソッドについて紹介します。

返り値はメソッドから出力される値

返り値とは、引数などを用いて処理を行い最終的にメソッドから出力される値のことです。数値などの他に、審議判定を行うBool型なども返り値として使用できます。

複数使える引数とは異なり、返り値は1つしか使用できないということを押さえておきましょう。

スクリプトを試してみよう!

今回は引数を2つ定めて引数を掛け算するメソッドを作成し、計算結果を返り値として出力します。

先ほど作成したTestスクリプトを次のように変更してみてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

    int Keisan(int x, int y)//引数xとyを掛け算し、結果を返り値zとして出力するメソッド
    {
        int z = x * y;
        return z;
    }

    // Use this for initialization
    void Start()
    {
        int Total = Keisan(5,9);//整数型の引数をもつメソッドKeisanに引数5と9を渡しメソッドを実行し、返り値を変数Totalに代入する
        Debug.Log(Total);//コンソールウィンドウにTotalを出力する
    }

}

入力が完了したら、プロジェクトを再生してみてください。

このようにコンソールウィンドウに「45」と出力されれば成功です。

まとめ

いかがでしたでしょうか?

今回は、決まった処理を定義しておき、後から呼び出すこのできるメソッドについて紹介しました。メソッドをうまく扱えるようになると、スクリプトの記述量を減らすことが可能なので少しずつメソッドにも慣れていきましょう。

 

最後に今回学んだメソッドのポイントについてまとめておきます。

今回のポイント
・メソッドは定義して、呼び出すことで使用できる
・引数を用いないメソッドはvoid型
・引数を用いない場合でもメソッド名の後の()を忘れない
・引数は複数、返り値は1つのみ使用可能
・引数同士は,(カンマ)で区切る
・返り値を使用する場合は、メソッドの最後にreturnで記述