Action関数とは
using System;を用いた「関数を参照するための型のことである」
型構文は以下の物が存在する。
・Action 戻り値なし、引数なし
・Action<引数> 戻り値なし、引数あり
また、アクション関数は「+=」を用いることにより処理(関数)を格納することができる。
実際の処理
//アクション関数を宣言
private Action _action;
private void Start()
{
//MoveLog関数をアクション関数に格納
_action += MoveLog;
}
private void Update()
{
if(Input.GetMouseButtonDown(0))
{
//アクション関数の中にある処理を呼び出す
_Action.Invoke();
}
}
private void MoveLog()
{
Debug.Log("移動した。");
}
処理解説
上記の処理ではキーが入力された際にLogが流れるようになっている。
Action型の_actionをStart()で宣言して、
MoveLog関数を_actionに読み込ませる。
_action関数をInvokeで実行し、読み込んだ処理を行わせる。
というもの。
Invokeは遅延処理でも使用されることがあるが()の引数に数値を入れて遅延させるなどはどうやらできないようだ。(一応確認してみてもいいかもしれない。)
コメント
コメントにはログインが必要です