省略可能な引数とはデフォルト引数とも呼ばれます。メソッドに引数を用意する際に、あらかじめ初期値を設定(初期化)しておくことで
その引数を省略した場合には初期値を使用し、省略せずに記述した場合にはその値を使用する、という定義になっています。
<今回のケースの場合のメソッドの定義>
public void UpdateDisplayScore(bool isChooseEto = false)
通常の引数とは異なり、型、変数名の宣言に加えてイコールで初期化を行っています。
これが省略した引数の定義の方法になります。なお、複数の引数を持つメソッドの場合、この省略書式は、省略していない引数の宣言が終わってから書かないとエラーになります。
<複数の引数を持つ場合のメソッドでの省略引数の定義>
1.エラーにならない場合(省略していない引数を書いた後に省略引数を定義する)
public void UpdateDisplayScore(int x, GameObject obj, bool isChooseEto = false)
2.エラーになる場合(省略していない引数が省略引数よりも後ろに定義されている)
public void UpdateDisplayScore(int x, bool isChooseEto = false, GameObject obj)
省略引数を持つメソッドを呼び出す命令には2つの方法があります。
1つは省略引数を書かないで呼び出す方法と、省略引数を書いて呼び出す方法です。
isChooseEto = true;
<省略引数を省略しない場合の命令>
uiManager.UpdateDisplayScore(isChooseEto);
<省略引数を省略する場合の命令>
uiManager.UpdateDisplayScore();
上記の場合には、trueが引数として渡されます。
下記の場合には引数が省略されていますので、省略引数で初期化して宣言している false が引数として渡されます。
省略引数の値を利用することがほとんどで、たまに引数を指定して渡すようなメソッドの場合には、
引数の値が必要な場合にだけメソッドの引数を記述すればよいことになりますので、その都度、引数を書く手間が省けます。