public TargetCollection CalculateSingleTarget(BattleUnit caster, AbilityData abilityData, RequestTarget requestTarget, ActionTarget actionTarget) { var targetCollection = new TargetCollection(); if (actionTarget.singTarget == ActionSingTarget.CASTER) { targetCollection.targetType = AbilityRequestTargetType.UNIT; targetCollection.AddUnit(caster); return(targetCollection); } if (requestTarget == null) { BattleLog.LogError("单体技能[{0}]的单体目标配置非CASTER,但是请求的目标为nil", abilityData.configFileName); return(null); } if (actionTarget.singTarget == ActionSingTarget.TARGET) { if (requestTarget.targetType == AbilityRequestTargetType.POINT) { BattleLog.LogError("单体技能[{0}]目标配置为TARGET,REQUEST TARGET却是POINT类型", abilityData.configFileName); return(null); } targetCollection.targetType = AbilityRequestTargetType.UNIT; targetCollection.AddUnit(requestTarget.GetTargetUnit()); return(targetCollection); } if (actionTarget.singTarget == ActionSingTarget.POINT) { targetCollection.targetType = AbilityRequestTargetType.POINT; targetCollection.AddPoint(requestTarget.targetPos); return(targetCollection); } BattleLog.LogError("技能[{0}]中有未实现的目标类型[{1}]", abilityData.configFileName); return(null); }