コード例 #1
0
    /** 添加单位 */
    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);
    }