public bool CanAttackToTarget(SpacecraftEntity attacker, SpacecraftEntity target) { if (attacker == null || target == null) { return(false); } //优先判断是否可被攻击 if (!target.GetCanBeAttack()) { return(false); } CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy; //直接调用获取阵营关系的函数,岂不简单些? CampRelation relation = cfgEternityProxy.GetRelation(attacker.GetCampID(), target.GetCampID()); return(relation == CampRelation.Enemy); //int attCamp = attacker.GetCampID(); //int tarCamp = target.GetCampID(); //CampVO_MergeObject? campVO = cfgCampProxy.GetCampRelationVO(attCamp, tarCamp); //if (campVO == null) //{ // Debug.LogErrorFormat("阵营信息不存在. Camp1: {0}, Camp2: {1}", attCamp, tarCamp); // return false; //} //else //{ // int prestage = attacker.GetPrestige(tarCamp); // // 通过声望值判断是否可攻击 // return prestage > campVO.Value.PrestigeEnemyMin && prestage < campVO.Value.PrestigeEnemyMax; //} }