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); } } }