/** 添加单位 */ public Unit addUnit(UnitData data) { //预处理 //服务器驱动场景启用 if (_config.instanceType != SceneInstanceType.ClientDriveSinglePlayerBattle) { //是自己的M单位 if (data.identity is MUnitIdentityData && data.identity.playerID == GameC.player.role.playerID) { MUnitUseLogic useLogic = GameC.player.character.getMUnitUseLogic(data.getMUnitIdentity().mIndex); if (useLogic == null) { Ctrl.throwError("不能找不到主单位的使用逻辑", data.getMUnitIdentity().mIndex); } //取主角的数据逻辑 UnitFightDataLogic dataLogic = useLogic.getFightLogic(); //先清空 dataLogic.clear(); //再重设数据 dataLogic.setData(data.fight, data.avatar); data.fightDataLogic = dataLogic; } } // Unit unit = toAddUnit(data); if (unit != null) { toActiveUnit(unit); UnitSimpleData sData = _bindVisionUnits.get(data.instanceID); if (sData != null) { unit.makeSimpleUnitData(sData); } } return(unit); }