public static LifetimeRequest Query(GameObject gameObject) { var request = new LifetimeRequest(); gameObject.SendMessage(MessageName, request, SendMessageOptions.DontRequireReceiver); return(request); }
void OnLifetimeRequest(LifetimeRequest request) { if (!enabled) { return; } request.MinLifetime = IsDetonated ? 0 : LifetimeResponseValue; }
private IEnumerator WaitForTransientObjects() { float transientWaitStartTimestamp = Time.fixedTime; while (true) { float waitTimeElapsed = Time.fixedTime - transientWaitStartTimestamp; float maxWaitTime = TransientObjectsMaxWaitTime - waitTimeElapsed; var transientObjects = LifetimeRequest .Query(CurrentPlayerOwnedObjects.Select(ownedObject => ownedObject.gameObject)) .Where(objLifetime => objLifetime.MinLifetime <= maxWaitTime && objLifetime.MinLifetime > 0); if (transientObjects.Any()) { yield return(this.WaitForFixedSeconds(0.25f)); } else { break; } } }
void OnLifetimeRequest(LifetimeRequest request) { request.MinLifetime = TimeLeft; }
public ObjectLifetime(GameObject gameObject, LifetimeRequest response) { this.GameObject = gameObject; this.Response = response; }
void OnLifetimeRequest(LifetimeRequest request) { float timeElapsed = Time.fixedTime - createdTimestamp; request.MinLifetime = Delay - timeElapsed; }
void OnLifetimeRequest(LifetimeRequest request) { request.MinLifetime = Mathf.Max(1, Duration) - TimeElapsed; }