public void MoveTo(string label, params object[] args) { foreach (var s in slides) { if (s.slide.label == label) { if (!s.isLoaded) { Load(s); } s.slide.gameObject.SetActive(true); s.slide.OnSlide(); var t = Transition(current, s.slide); transition = () => { if (t()) { current.OnOut(); current.gameObject.SetActive(false); current = s.slide; isTransiting = false; } else if (!isTransiting) { isTransiting = true; } }; transition(); return; } } throw new System.Exception(string.Format("Slide {0}'s not found", label)); }
protected override Func <bool> Transition(SlideBehaviour from, SlideBehaviour to) { return(() => { camera.transform.position = to.transform.position; return true; }); }
protected void Awake() { currentManager = this; foreach (var s in slides) { if (s.isLoaded) { s.slide.SetSlider(this); s.slide.gameObject.SetActive(false); } } if (!slides[curr].isLoaded) { Load(slides[curr]); } current = slides[curr].slide; current.gameObject.SetActive(true); OnStart(current); }
protected override Func <bool> Transition(SlideBehaviour from, SlideBehaviour to) { this.from = from; this.to = to; return(Transit); }
protected override void OnStart(SlideBehaviour beginSlide) { camera.transform.position = beginSlide.transform.position; }
protected virtual Func <bool> Transition(SlideBehaviour from, SlideBehaviour to) { return(() => true); }
protected virtual void OnStart(SlideBehaviour beginSlide) { }