示例#1
0
    public void SwitchCell(EventMgr.KeyDownEventInfo info)
    {
        // 判定切换前技能是否与切换后技能相同,如果不同则为 true,即可以重置精确度
        bool flag = false;

        switch (info.keyCode)
        {
        case KeyCode.Alpha1:
            // 如果切换前的技能还在施放,应该立即停止该技能
            if (currentSkillNum != 1)
            {
                SkillCells[currentSkillNum].ForceToStopCasting();
                flag = true;
            }
            currentSkillNum = 1;
            if (flag)
            {
                SetUnitInitAccuracy(SkillCells[currentSkillNum].CurrentSkill.Data.Accuracy);
            }
            flag = false;
            Debug.Log("切换至技能 1");
            break;

        case KeyCode.Alpha2:
            if (currentSkillNum != 2)
            {
                SkillCells[currentSkillNum].ForceToStopCasting();
            }
            currentSkillNum = 2;
            if (flag)
            {
                SetUnitInitAccuracy(SkillCells[currentSkillNum].CurrentSkill.Data.Accuracy);
            }
            flag = false;
            Debug.Log("切换至技能 2");
            break;

        case KeyCode.Alpha3:
            if (currentSkillNum != 3)
            {
                SkillCells[currentSkillNum].ForceToStopCasting();
            }
            currentSkillNum = 3;
            if (flag)
            {
                SetUnitInitAccuracy(SkillCells[currentSkillNum].CurrentSkill.Data.Accuracy);
            }
            flag = false;
            Debug.Log("切换至技能 3");
            break;
        }
    }
    private void SwitchCellListener(EventMgr.KeyDownEventInfo info)
    {
        if (player == null)
        {
            return;
        }

        int index = -1;

        switch (info.keyCode)
        {
        case KeyCode.Alpha1:
            index = 1;
            break;

        case KeyCode.Alpha2:
            index = 2;
            break;

        case KeyCode.Alpha3:
            index = 3;
            break;
        }
        if (GameCtrl.IsOnlineGame)
        {
            if (index != -1)
            {
                DataSync.SyncSwitchSkill(player, Gamef.SystemTimeInMillisecond, index);
            }
        }
        else
        {
            if (index != -1)
            {
                skillTable.SwitchCell(index);
            }
        }
    }