//进入这个状态的时候 public override void OnEnter(SimpleRole.enState lastState, object param) { SimpleRole.enBehitType behitType = (SimpleRole.enBehitType)param; if (lastState != SimpleRole.enState.behit) //之前不是被击状态则可以进入,但是要先清空 { PlayBehit(behitType); } else if (m_curBehitType.CompareTo(behitType) <= 0)//被击优先级比现在的高 { PlayBehit(behitType); } //浮空中被击有一个小的浮空力 if (m_parent.m_floatBehitStartSpeed > m_floatSpeed && behitType == SimpleRole.enBehitType.beiji && m_curBehitType == SimpleRole.enBehitType.fukong) { //下降状态要加回上升状态 if (m_floatSpeed <= 0) { m_parent.Ani.Play(AniFxMgr.Ani_FuKong01, WrapMode.ClampForever, m_parent.m_fade); } //重设初速度 m_floatSpeed = m_parent.m_floatBehitStartSpeed; m_floatAccelerated = m_parent.m_floatBehitAccelerated; } }
void PlayBehit(SimpleRole.enBehitType behitType) { if (behitType == SimpleRole.enBehitType.beiji) { m_parent.Ani.Play(m_behitToggle ? AniFxMgr.Ani_BeiJi01 : AniFxMgr.Ani_BeiJi02, WrapMode.ClampForever, m_parent.m_fade); m_behitToggle = !m_behitToggle; m_behitEndTime = Time.time + m_parent.m_behitDuration; } else if (behitType == SimpleRole.enBehitType.fukong) { m_parent.Ani.Play(AniFxMgr.Ani_FuKong01, WrapMode.ClampForever, m_parent.m_fade); m_floatSpeed = m_parent.m_floatStartSpeed; m_floatAccelerated = m_parent.m_floatAcceleratedUp; } else if (behitType == SimpleRole.enBehitType.daodi) { m_parent.Ani.Play(AniFxMgr.Ani_DaoDi, WrapMode.ClampForever, m_parent.m_fade); m_groundEndTime = Time.time + m_parent.m_groundDuration; } else if (behitType == SimpleRole.enBehitType.qishen) { m_parent.Ani.Play(AniFxMgr.Ani_QiShen, WrapMode.ClampForever, m_parent.m_fade); } else if (behitType == SimpleRole.enBehitType.jifei) { m_parent.Ani.Play(AniFxMgr.Ani_JiFei, WrapMode.Loop, m_parent.m_fade); m_flySpeed = m_parent.m_flyStartSpeed; m_flyAccelerated = m_parent.m_flyAcceleratedUp; } m_curBehitType = behitType; }