123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
-
- // =================================
- // Namespaces.
- // =================================
- using UnityEngine;
- using UnityEngine.Events;
- // =================================
- // Define namespace.
- // =================================
- namespace MirzaBeig
- {
- namespace Demos
- {
- namespace TheLastParticle
- {
- // =================================
- // Classes.
- // =================================
- [ExecuteInEditMode]
- [System.Serializable]
- public class RandomInvoke : MonoBehaviour
- {
- // =================================
- // Nested classes and structures.
- // =================================
- // ...
- // =================================
- // Variables.
- // =================================
- // ...
- float timer;
- float nextInvokeTime;
- public Vector2 timeRange = new Vector2(2.0f, 5.0f);
- // =================================
- // Functions.
- // =================================
- // ...
- protected virtual void Start()
- {
- // Even though invoke just calls Invoke, DON'T call the local invoke here!
- // Since it will be overriden and made to do more...
- // NOTE: Invoke doesn't seem to work with inheritance. So I'll just do it manually.
- nextInvokeTime = Random.Range(timeRange.x, timeRange.y);
- }
- // ...
- protected virtual void Update()
- {
- timer += Time.deltaTime;
- if (timer >= nextInvokeTime)
- {
- doSomething();
- timer = 0.0f;
- nextInvokeTime = Random.Range(timeRange.x, timeRange.y);
- }
- }
- // ...
- protected virtual void doSomething()
- {
- }
- // =================================
- // End functions.
- // =================================
- }
- // =================================
- // End namespace.
- // =================================
- }
- }
- }
- // =================================
- // --END-- //
- // =================================
|