示例#1
0
    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;
    }
示例#2
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);
        }
    }