/// <summary> /// Despawns an object after a delay. /// </summary> /// <param name="target">The target to despawn.</param> /// <param name="delay">Time in seconds to wait before despawning the target.</param> /// <param name="unscaledTime">Should the delay be according to <see cref="Time.time"/> or <see cref="Time.unscaledTime"/>?</param> public void Despawn(T target, float delay, bool unscaledTime = false) { var id = _nextTimerId++; _instanceToTimerId[target] = id; if (unscaledTime) { TellMeWhen.SecondsUnscaled(delay, this, id); } else { TellMeWhen.Seconds(delay, this, id); } }
/// <summary> /// Despawns an object after a delay. /// </summary> /// <param name="target">The target to despawn.</param> /// <param name="delay">Time in seconds to wait before despawning the target.</param> /// <param name="unscaledTime">Should the delay be according to <see cref="Time.time"/> or <see cref="Time.unscaledTime"/>?</param> public void Despawn(T target, float delay, bool unscaledTime = false) { if (ReferenceEquals(target, null)) { throw new ArgumentNullException("target"); } var id = _nextTimerId++; _instanceToTimerId[target] = id; if (unscaledTime) { TellMeWhen.SecondsUnscaled(delay, this, id, target); } else { TellMeWhen.Seconds(delay, this, id, target); } }