public void Show(UIStartupFairy.FairyType iType, UIStartupFairy.FairyState iState, Action onFinished) { this.ReqFairyType(iType); base.get_transform().set_localPosition(this._listFairyAnimationParameter.get_Item((int)iType).startPos); this.PreparaAnimation(true, delegate { this.collider.set_enabled(true); this.ReqFairyState(iState); Dlg.Call(ref onFinished); }); }
private void ReqFairyState(UIStartupFairy.FairyState iState) { if (this._iType == UIStartupFairy.FairyType.None) { return; } if (this._listFairyAnimationParameter.get_Item((int)this._iType).GetStateParam(iState).spriteNum <= 0) { return; } this._nSpriteIndex = 0; this._listObserverStream.ForEach(delegate(IDisposable x) { if (x != null) { x.Dispose(); } }); this._listObserverStream.set_Item((int)iState, (from x in Observable.IntervalFrame(this._listFairyAnimationParameter.get_Item((int)this._iType).GetStateParam(iState).drawIntervalFrame, FrameCountType.Update) select this._nSpriteIndex ++).Subscribe(delegate(int index) { int num = index % this._listFairyAnimationParameter.get_Item((int)this._iType).GetStateParam(iState).spriteNum; int nIndex = this._listFairyAnimationParameter.get_Item((int)this._iType).GetStateParam(iState).convertSpriteNumber[num]; this.SetSprite(this._iType, iState, nIndex); }).AddTo(base.get_gameObject())); this._iStatePrev = this._iState; this._iState = iState; switch (iState) { case UIStartupFairy.FairyState.Move: if (this._iStatePrev != UIStartupFairy.FairyState.Jump) { float tripTime = this._listFairyAnimationParameter.get_Item((int)this._iType).tripTime; float rotTime = this._listFairyAnimationParameter.get_Item((int)this._iType).rotTime; float delayTime = tripTime * 2f; base.get_transform().LTCancel(); base.get_transform().LTDelayedCall(delayTime, delegate { this.get_transform().LTRotateLocal(Vector3.get_zero(), rotTime).setEase(LeanTweenType.easeOutSine); this.get_transform().LTMoveLocalX(this._listFairyAnimationParameter.get_Item((int)this._iType).endPos.x, tripTime).setEase(LeanTweenType.linear); this.get_transform().LTRotateLocal(Vector3.get_up() * 180f, rotTime).setDelay(tripTime).setEase(LeanTweenType.easeOutSine); this.get_transform().LTMoveLocalX(this._listFairyAnimationParameter.get_Item((int)this._iType).startPos.x, tripTime).setDelay(tripTime).setEase(LeanTweenType.linear); }).setOnCompleteOnStart(true).setLoopClamp(); } break; case UIStartupFairy.FairyState.Jump: Observable.TimerFrame(this._listFairyAnimationParameter.get_Item((int)this._iType).jumpFrame, FrameCountType.Update).Subscribe(delegate(long _) { this.ReqFairyState(this._iStatePrev); }); break; } }
public UIStartupFairy.StateParam GetStateParam(UIStartupFairy.FairyState iState) { switch (iState) { case UIStartupFairy.FairyState.Idle: return(this.idleStateParam); case UIStartupFairy.FairyState.Move: return(this.moveStateParam); case UIStartupFairy.FairyState.Jump: return(this.jumpStateParam); default: return(default(UIStartupFairy.StateParam)); } }
private void ReqFairyType(UIStartupFairy.FairyType iType) { if (this._iType == iType) { return; } this._iType = iType; this._iState = (this._iStatePrev = UIStartupFairy.FairyState.Idle); this._nSpriteIndex = 0; this.SetSprite(this._iType, this._iState, this._nSpriteIndex); this._listObserverStream.ForEach(delegate(IDisposable x) { if (x != null) { x.Dispose(); } }); }
private void SetSprite(UIStartupFairy.FairyType iType, UIStartupFairy.FairyState iState, int nIndex) { this.fairySprite.spriteName = ((iType != UIStartupFairy.FairyType.None) ? string.Format("mini{0}_{1}_{2:D2}", (int)iType, iState.ToString(), nIndex) : string.Empty); this.fairySprite.localSize = this._listFairyAnimationParameter.get_Item((int)iType).baseSpriteSize; }