【趣味】【ゲーム開発】Unity時間経過で定期的に処理実行するスクリプト
すごくシンプルなんだけど、あると便利なスクリプトです。
定期的に実行する関数を _onInterval に渡します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using UnityEngine; using UnityEngine.Events; /// <summary> インターバルイベントクラス </summary> public class IntervalEvent : MonoBehaviour { /// <summary> 初更新時処理 </summary> void Start() { _elapsedTime = 0.0f; } /// <summary> 更新時処理 </summary> void Update() { // 経過時間加算 _elapsedTime += Time.deltaTime; // インターバル処理実行 while (_elapsedTime > _interval) { _elapsedTime -= _interval; _onInterval.Invoke(); } } /// <summary> 経過時間 </summary> public float _elapsedTime; /// <summary> 実行間隔 </summary> public float _interval = 1.0f; /// <summary> 等間隔実行処理 </summary> public UnityEvent _onInterval; } |
今日は作業のノリが悪かった(10分しかやってねぇ)けど、
このレベルだけでも毎日更新していきたいと思う。