//set canvas, alpha and the time that the operation will finish public void ConfigureFade(CanvasGroup canvasGroup) { this.canvasGroup = canvasGroup; fadeDone = false; switch (fadeOption) { case FadeOption.FadeIn: fade = FadeIn; canvasGroup.alpha = 0; break; default: fade = FadeOut; canvasGroup.alpha = 1; break; } endTime = Time.time + delay; //update the delay to the end time }
private void FadeAll(FadeFunction fadeFunction, Action fadeCallback) { MyContract.RequireFieldNotNull(CoroutineHost, "CoroutineHost"); HashSet <int> ObjectsToFade = new HashSet <int>(); HashSet <int> FadedObjectsFlag = new HashSet <int>(); foreach (var entry in RegisteredObjects) { Camera Cam = entry.Value; int Key = entry.Key; CameraFader FadeComponent = Cam.gameObject.GetComponent <CameraFader>(); if (FadeComponent != null) { ObjectsToFade.Add(Key); Action PartialFadeCallback = delegate() { FadedObjectsFlag.Add(Key); }; fadeFunction(FadeComponent, PartialFadeCallback); } else { //Debug.Log("Camera " // + Cam.gameObject.name // + " has no Camera Fader - Skipping"); } } if (fadeCallback != null) { CoroutineHost.StartCoroutine( FadeCallbackCoroutine( ObjectsToFade, FadedObjectsFlag, fadeCallback ) ); } }