private void NextFrame() { if (eAnim != null) { timeElapsedInCurrentFrame -= currentFrameDuration; Transition transition = null; if (eAnim.Animation.isUseTransitions()) { transition = eAnim.Animation.getTranstionForFrame(currentFrame); } currentFrame++; if (!string.IsNullOrEmpty(then) && currentFrame == eAnim.frames.Count) { Play(then); } else if (transition != null) { isTransitioning = true; transitionManager.PrepareTransition(transition, GetFrameTexture(currentFrame)); transitionManager.DoTransition((_, __) => { isTransitioning = false; SetFrame(currentFrame); }); } else { SetFrame(currentFrame); } } }
private void SetSlide(int i) { if (slides != null && i < slides.frames.Count) { var texture = slides.frames[i].Image; if (slides.Animation.isUseTransitions() && i > 0) { var transition = slides.Animation.getTranstionForFrame(currentSlide); transitionManager.PrepareTransition(transition, texture); wasDisabled = uAdventureRaycaster.Instance.Disabled; uAdventureRaycaster.Instance.Disabled = true; transitionManager.DoTransition((_, t) => { this.currentSlide = i; SetBackground(t); uAdventureRaycaster.Instance.Disabled = wasDisabled; }); } else { this.currentSlide = i; SetBackground(texture); } } }
public IRunnerChapterTarget RunTarget(string scene_id, int transition_time = 0, TransitionType transition_type = 0, Interactuable notifyObject = null, bool trace = true) { Debug.Log("Run target: " + scene_id); GUIManager.Instance.ShowHand(false); MenuMB.Instance.hide(true); IChapterTarget target = GameState.GetChapterTarget(scene_id); var transition = new Transition(); transition.setTime(transition_time); transition.setType(transition_type); transitionManager.PrepareTransition(transition); if (runnerTarget != null && runnerTarget.Data == target && scene_id == GameState.CurrentTarget) { runnerTarget.RenderScene(); } else { if (runnerTarget != null) { runnerTarget.Destroy(); } // Here we connect with the IChapterTargetFactory and create an IRunnerChapterTarget runnerTarget = RunnerChapterTargetFactory.Instance.Instantiate(target); runnerTarget.Data = target; GameState.CurrentTarget = target.getId(); } if (trace && OnTargetChanged != null) { OnTargetChanged(target); } waitingRunTarget = true; if (notifyObject != null) { executeStack.Push(new KeyValuePair <Interactuable, ExecutionEvent>(notifyObject, null)); } uAdventureRaycaster.Instance.Override = this.gameObject; return(runnerTarget); }
public IRunnerChapterTarget RunTarget(string scene_id, int transition_time = 0, TransitionType transition_type = 0, Interactuable notifyObject = null, bool trace = true) { Debug.Log("Run target: " + scene_id); if (GUIManager.Instance) { GUIManager.Instance.ShowHand(false); } if (MenuMB.Instance) { MenuMB.Instance.hide(true); } IChapterTarget target = GameState.GetChapterTarget(scene_id); if (TransitionManager != null) { var transition = new Transition(); transition.setTime(transition_time); transition.setType(transition_type); TransitionManager.PrepareTransition(transition); } if (runnerTarget != null && runnerTarget.Data == target && scene_id == GameState.CurrentTarget) { runnerTarget.RenderScene(); waitingRunTarget = true; } else { waitingTargetDestroy = true; System.Action runTarget = () => { waitingTargetDestroy = false; waitingRunTarget = true; if (trace) { GameState.CurrentTarget = target.getId(); } runnerTarget.RenderScene(); if (trace && OnTargetChanged != null) { OnTargetChanged(target); } }; var oldTarget = runnerTarget; // Here we connect with the IChapterTargetFactory and create an IRunnerChapterTarget runnerTarget = RunnerChapterTargetFactory.Instance.Instantiate(target); runnerTarget.Data = target; Debug.Log("Target gameobject: " + runnerTarget.gameObject); DontDestroyOnLoad(runnerTarget.gameObject); Debug.Log("Target creado: " + runnerTarget); System.Action afterChapterLoad = () => { if (oldTarget != null) { oldTarget.Destroy(0f, runTarget); } else { runTarget(); } }; if (loadedChapter != GameState.CurrentChapter) { LoadChapter(GameState.CurrentChapter) .Then(() => { loadedChapter = GameState.CurrentChapter; afterChapterLoad(); }) .Catch(ex => { Debug.LogError(ex); }); } else { afterChapterLoad(); } } if (notifyObject != null) { executeStack.Push(new KeyValuePair <Interactuable, ExecutionEvent>(notifyObject, null)); } if (uAdventureRaycaster.Instance) { uAdventureRaycaster.Instance.Override = this.gameObject; } return(runnerTarget); }