//普攻, 那只能对敌人使用 public override AffectDectectResult CanAffectOnTarget(IGameplayAbilityUnit target) { AffectDectectResult result = base.CanAffectOnTarget(target); if (result != AffectDectectResult.Success) { return(result); } return(AffectDectectResult.Success); }
/// <summary> /// 对指定的地点施法 /// 注意是, localPos的位置 /// </summary> public AffectDectectResult TryActivateAbility(Vector3 localPosition) { AffectDectectResult result = CanAffectOnTarget(localPosition); if (result != AffectDectectResult.Success) { ReportNotReady(); return(result); } m_targetLocalPosition = localPosition; Activate(); return(result); }
/// <summary> /// 对传入的目标施法 /// </summary> public AffectDectectResult TryActivateAbility(IGameplayAbilityUnit target) { AffectDectectResult result = CanAffectOnTarget(target); if (result != AffectDectectResult.Success) { ReportNotReady(); return(result); } m_target = target; Activate(); return(result); }
public override AffectDectectResult CanAffectOnTarget(IGameplayAbilityUnit target) { AffectDectectResult result = base.CanAffectOnTarget(target); if (result != AffectDectectResult.Success) { return(result); } if (m_meta.Range > 0) { float dist = m_owner.GetSquaredXZDistanceTo_NoRadius(target); if (dist > (m_meta.Range * m_meta.Range)) { return(AffectDectectResult.OutOfRange); } } return(AffectDectectResult.Success); }
public override AffectDectectResult CanAffectOnTarget(Vector3 target) { AffectDectectResult result = base.CanAffectOnTarget(target); if (result != AffectDectectResult.Success) { return(result); } if (m_meta.Range > 0) { //技能不考虑自己和对方的半径, 否则在AI阶段如果是以 //CanAffectOnTarget(CController target)为考量, 这样考虑到了对方的半径 //但具体技能是以地点为目标, 使用的是CanAffectOnTarget(Vector3 target) //也就是说没有考虑对方的半径. 这样会造成结果不统一 float dist = m_owner.GetSquaredXZDistanceTo_NoRadius(target); if (dist > m_meta.Range * m_meta.Range) { return(AffectDectectResult.OutOfRange); } } return(AffectDectectResult.Success); }