/// <summary> /// 创建技能组件, 并挂在owner身上 /// </summary> public static CAbility Create(string meta, GameObject owner) { CAbility ability = null; CAbilityMeta emeta = CAbilityMetaManager.GetMeta(meta); switch (emeta.Type) { case CAbilityType.Attack: ability = owner.AddComponent <CAbilityAttack>(); ability.AbilityName = meta; break; case CAbilityType.EffectTarget: ability = owner.AddComponent <CAbilitylEffectTarget>(); ability.AbilityName = meta; break; } if (ability == null) { Debug.LogError(meta + " ability we are not handle"); } return(ability); }
/// <summary> /// 选择使用某个技能 /// </summary> /// <param name="index"></param> public void SelectAbility(int index) { if (index >= m_abilityList.Count) { m_selectedAbility = null; return; } m_selectedAbility = m_abilityList[index]; }
/// <summary> /// 掌握具体的技能 /// </summary> /// <param name="ability"></param> public void MasterAbility(CAbility ability) { if (m_abilityList.Contains(ability)) { return; } ability.Index = m_abilityList.Count; m_abilityList.Add(ability); m_abilityDict[ability.AbilityName] = ability; }
/// <summary> /// actor掌握新技能 /// </summary> /// <param name="meta"></param> public CAbility MasterAbility(string name) { if (string.IsNullOrEmpty(name)) { return(null); } CAbility abi = CAbility.Create(name, gameObject); if (abi == null) { return(null); } abi.InitAbilityActorInfo(m_owner, m_owner); abi.Index = m_abilityList.Count; m_abilityList.Add(abi); m_abilityDict[name] = abi; return(abi); }
/// <summary> /// 取消选中的技能 /// </summary> public void CancelSelectedAbility() { m_selectedAbility = null; }
/// <summary> /// 选择使用某个技能 /// </summary> /// <param name="index"></param> public void SelectAbility(string name) { m_selectedAbility = m_abilityDict[name]; }