「Unity/Csharp/Invoke」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Invokeに引数を追加) |
(→StartCoroutineが使えない場所で使いたい場合) |
||
行41: | 行41: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | 詳しくは、[Unity/UniRx/UniTask]] [ショートカット] | ||
==オブジェクト削除時の遅延処理== | ==オブジェクト削除時の遅延処理== | ||
GameObjectは以下で5秒後に遅延削除できる | GameObjectは以下で5秒後に遅延削除できる | ||
Destroy(obj, 5.0f); | Destroy(obj, 5.0f); |
2021年9月10日 (金) 18:34時点における版
Invokeとは
メソッドを遅らせて(遅延)実行させることができる
サンプル
void Main() { Invoke("Method1", 0.2f); // 0.2sec後に実行 } void Method1() { }
Invokeに引数を追加
StartCoroutineを使えば出来る。
引数として123を指定
using System.Collections; private void Start() { StartCoroutine(DelayMethod1(5.0f, 123)); } IEnumerator DelayMethod1(float delay, int hoge) { yield return new WaitForSeconds(delay); // ここに処理を追加 }
参考:https://kan-kikuchi.hatenablog.com/entry/DelayMethod
StartCoroutineが使えない場所で使いたい場合
UniTaskを使えば出来る。
using Cysharp.Threading.Tasks; async void Exec() { await DelayMethod1(5.0f, 123); } IEnumerator DelayMethod1(float delay, int hoge) { yield return new WaitForSeconds(delay); // ここに処理を追加 }
詳しくは、[Unity/UniRx/UniTask]] [ショートカット]
オブジェクト削除時の遅延処理
GameObjectは以下で5秒後に遅延削除できる
Destroy(obj, 5.0f);