/// <summary> /// 调用的不同状态 /// </summary> public int Act(eStateName nowState) { //Debug.Log(times); ////切换状态刷新次数 if (this.nowState != nowState) { times = maxTimes; SetState(nowState); } //根据枚举类型设置状态 if (nowState == eStateName.Nomal) { return(SetAct(state[0].stateName, state[gifNum].state[1], state[gifNum].state[2])); } else { for (int i = 0; i < state.Count; i++) { if (state[i].stateName == nowState + 1) { SetAct(state[i].stateName - 1, state[i].state[1], state[i].state[2]); } } } return(0); }
/// <summary> /// 状态的切换 /// </summary> int SetAct(eStateName type, Object state1, Object state2) { t += Time.deltaTime; if (t - lastTime >= interval) { switch (actTimes) { case 0: playerLook.overrideSprite = state1 as Sprite; actTimes = 1; break; case 1: playerLook.overrideSprite = state2 as Sprite; actTimes = 0; //设置正常状态gif个数 if (gifNum == 0) { gifNum = 1; } else { gifNum = 0; } break; } lastTime = t; return(TimesLower(type)); } return(0); }
/// <summary> /// 判断是否切换次数耗尽 /// </summary> int TimesLower(eStateName type) { if (type == eStateName.Amaze || type == eStateName.Happy) { times--; if (times <= 0) { times = maxTimes; return(1);//反回1代表次数刷新过重回普通状态 } } return(0); }
/// <summary> /// 设置状态 /// </summary> void SetState(eStateName nowState) { this.nowState = nowState; }