public override void RunStep() { pState = E_PterosaurState.Lift; // 技能,冷却时间,。。。。,标志位 // 标志位0:必须顺序播放完才能进入下个阶段;1:循环播放所有技能,事件触发进入下个阶段; List <int> list = new List <int> { 2, 0, 3, 3, 4, 4, 0 }; for (int i = 0; i < list.Count - 2;) { PterosaurSkill skill = new PterosaurSkill((E_PterosaurState)list[i++], list[i++]); pskList.Add(skill); } skillFlag = list[list.Count - 1]; curSkillIndex = 0; }
public override void UpdateStep() { Vector3 direction = pterosaurBehaviour.LookAtPoint.position - ioo.cameraManager.cTransform.position; Quaternion toRotation = Quaternion.LookRotation(direction); ioo.cameraManager.cTransform.rotation = Quaternion.Lerp(ioo.cameraManager.cTransform.rotation, toRotation, Time.deltaTime * 5); switch (pState) { case E_PterosaurState.Idle: Idle(); break; case E_PterosaurState.Run: Run(); break; case E_PterosaurState.Lift: Lift(); break; case E_PterosaurState.Rain: Rain(); break; case E_PterosaurState.Claw: Claw(); break; case E_PterosaurState.Beat: Beat(); break; case E_PterosaurState.ClawBreak: ClawBreak(); break; case E_PterosaurState.BeatBreak: BeatBreak(); break; case E_PterosaurState.UpRush0: case E_PterosaurState.UpRush1: UpRush(); break; } if (!canUpdateSkill) { return; } if (pskList.Count == 0) { pterosaurBehaviour.NextStep(); return; } PterosaurSkill skill = pskList[curSkillIndex]; float time = skill.time; if (time > 0) { time -= Time.deltaTime; skill.time = time; } else { UseSkill(skill.skill); pskList.Remove(skill); } }