Func
Func の説明
Func は、C# のデリゲートの一種で、引数を受け取り、結果を返すメソッドを表現するための型です。主に次のような場面で使用されます。
- 関数を変数として扱いたい: メソッドを変数として持ち、必要に応じて呼び出すことができます。
- メソッドを引数に渡す: 他のメソッドに処理を渡したり、コールバックとして使用したりすることができます。
Unityでの Func の使用例
以下に、Unityのシンプルなスクリプトで Func を使用した例を示します。この例では、プレイヤーのスコアを計算するための Func を使っています。
using UnityEngine;
public class ScoreManager : MonoBehaviour
{
// スコアを計算するためのFunc
private Func<int, int, int> scoreCalculator;
void Start()
{
// スコアを加算するFuncを定義
scoreCalculator = (currentScore, pointsToAdd) => currentScore + pointsToAdd;
// 初期スコア
int initialScore = 10;
// ポイントを追加
int newScore = AddPoints(initialScore, 5);
// 結果を表示
Debug.Log("New Score: " + newScore); // 出力: New Score: 15
}
// スコアを加算するメソッド
public int AddPoints(int currentScore, int pointsToAdd)
{
return scoreCalculator(currentScore, pointsToAdd);
}
}
コードの説明
- Func<int, int, int> scoreCalculator: 引数に2つの
int(現在のスコアと追加するポイント)を取り、戻り値として新しいスコア(int)を返すFuncを定義しています。 - scoreCalculator = (currentScore, pointsToAdd) => currentScore + pointsToAdd: ラムダ式を使って、スコアを加算する関数を定義しています。
- AddPointsメソッド:
scoreCalculatorを使用してスコアを加算し、新しいスコアを返します。