/// <summary> /// 响应客户端的输入释放技能 /// 会检查是否已经存在指定ID的技能实例, 如果目前没有对应的技能实例则创建并释放 /// </summary> /// <param name="skillID"></param> private void ReleaseSkillByClientInput(int skillID) { if (!CanCreateSkill(skillID) || IsReleasingSkill(skillID) || m_SkillProxy.IsMainPlayerUsingWeaponSkill()) { // UNDONE, 此处应有报错 NotifyUnsuccessfulSkillRelease(skillID); return; } SkillBase newSkill = CreateSkill(skillID); if (!newSkill.CanReleaseSkill()) { NotifyUnsuccessfulSkillRelease(skillID); return; } if (newSkill != null) { if (m_RemoveSkillList.Contains(skillID)) { m_RemoveSkillList.Remove(skillID); } m_IDToSkill[skillID] = newSkill; m_Property.SetCurrentSkillID(skillID); m_State = newSkill.ReleaseSkillByClientInput(); m_Property.SetCurrentSkillState(m_State); } else { Debug.LogErrorFormat("技能释放失败. ID: {0}", skillID); } }