Invokeについて


Invokeを使うと指定秒後に指定のメソッドが実行できて便利。
でも引数が文字列なので、それが嫌な場合は

((Action)MethodName).Method.Name

で取得できる。
しかもInvokeはそのGameObjectが破棄されると自動で呼び出しも終わる。
簡易的に遅延させたい場合は便利。

参考)
いんでぃーづ | Invoke , Coroutine , SendMessage で文字列を使わない方法
Qiita | 【Unity】スクリプトの処理の実行タイミングを操作する

using UnityEngine;
using System;

/// <summary>
/// Invokeのテスト。
/// </summary>
public class InvokeTest : MonoBehaviour {
	/// <summary>
	/// Start.
	/// </summary>
	void Start() {
		this.InvokeMethod();
	}

	/// <summary>
	/// Invokeテスト。
	/// </summary>
	void InvokeMethod() {
		print("InvokeMethod called.");
		Invoke(((Action)this.InvokeMethod).Method.Name, 3f);
	}
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です