示例#1
0
    /** 设置配置 */
    public virtual void initSceneID(int id)
    {
        _config      = SceneConfig.get(id);
        _mapConfig   = SceneMapConfig.get(_config.mapID);
        _placeConfig = ScenePlaceConfig.getSync(id);

        //绑定驱动类型
        if (_config.instanceType == SceneInstanceType.ClientDriveSinglePlayerBattle)
        {
            driveType = SceneDriveType.ClientDriveAll;
        }
        else
        {
            driveType = CommonSetting.sceneDriveType;
        }

        originPos.setByIArr(_mapConfig.origin);
        sizePos.setByIArr(_mapConfig.size);
        endPos.x = originPos.x + sizePos.x;
        endPos.y = originPos.y + sizePos.y;
        endPos.z = originPos.z + sizePos.z;

        method.onSetConfig();

        preInit();
    }
示例#2
0
    /** 场景进入场景 */
    private void enterScene(SceneConfig config)
    {
        if (_currentSceneData != null)
        {
            exitScene();
        }

        SceneEditorData sData = _sceneDic.get(config.id);

        if (sData == null)
        {
            sData        = new SceneEditorData();
            sData.config = config;
            sData.read();

            _sceneDic.put(config.id, sData);
        }

        _currentSceneData = sData;

        _elementInstanceID = -1;

        SceneMapConfig mapConfig = SceneMapConfig.get(config.mapID);

        _originPos.setByIArr(mapConfig.origin);
        _sizePos.setByIArr(mapConfig.size);

        EditorSceneManager.sceneLoaded += onSceneLoaded;
        EditorSceneManager.LoadScene(ShineToolGlobal.assetSourceStr + "/" + mapConfig.source);
    }
示例#3
0
    /** 开始载入场景(第一阶段) */
    public void startLoad(Action overFunc)
    {
        _overFunc        = overFunc;
        _partOneComplete = false;

        _firstSet = new IntSet();

        _firstSet.addAll(MarkResourceConfig.firstSceneLoadList);

        SceneMapConfig config = _scene.getMapConfig();

        _firstSet.add(config.sourceT);
        _firstSet.add(config.musicT);

        if (CommonSetting.clientNeedScenePlaceEditor)
        {
            string scenePlaceEditorConfigPath = BaseC.config.getSplitConfigPath(CommonSetting.scenePlaceEditor, _scene.getConfig().id);

            _firstSet.add(LoadControl.getResourceIDByName(scenePlaceEditorConfigPath));
        }

        if (CommonSetting.clientMapNeedGrid)
        {
            string splitConfigPath = BaseC.config.getSplitConfigPath(CommonSetting.mapInfo, config.id);

            _firstSet.add(LoadControl.getResourceIDByName(splitConfigPath));
        }

        foreach (int v in config.sourceExListT)
        {
            _firstSet.add(v);
        }

        makeListEx();

        doLoadOne();
    }
示例#4
0
    /** 写合并项 */
    private void writeMapCombine()
    {
        if (_sceneList == null)
        {
            return;
        }

        Ctrl.print("writeCombine");

        BytesWriteStream stream = new BytesWriteStream();

        IntObjectMap <SceneMapConfig> dic = SceneMapConfig.getDic();

        stream.writeLen(dic.size());

        foreach (int k in dic.getSortedKeyList())
        {
            SceneMapConfig config = dic.get(k);

            stream.writeInt(config.id);

            if (CommonSetting.serverMapNeedGrid || CommonSetting.clientMapNeedGrid)
            {
                string path  = getMapGridFilePath(config.id);
                byte[] bytes = FileUtils.readFileForBytes(path);

                if (bytes != null)
                {
                    stream.writeLen(bytes.Length);
                    stream.writeByteArr(bytes);
                }
                else
                {
                    stream.writeLen(0);
                }

                if (CommonSetting.clientMapNeedGrid)
                {
                    BytesWriteStream clientStream = new BytesWriteStream();
                    BaseC.config.writeConfigVersion(clientStream);
                    clientStream.writeInt(config.id);

                    if (bytes != null)
                    {
                        clientStream.writeLen(bytes.Length);
                        clientStream.writeByteArr(bytes);
                    }
                    else
                    {
                        clientStream.writeLen(0);
                    }

                    byte[] buf = clientStream.getBuf();
                    int    len = clientStream.length();

                    if (CommonSetting.configNeedCompress)
                    {
                        clientStream.compress();
                    }

                    BytesReadStream rs = new BytesReadStream(clientStream.getBuf(), 0, clientStream.length());
                    rs.unCompress();

                    byte[] rBuf = rs.getBuf();
                    int    rLen = rs.length();

                    if (len == rLen)
                    {
                        bool isSame = true;

                        for (int i = 0; i < len; i++)
                        {
                            if (buf[i] != rBuf[i])
                            {
                                isSame = false;
                                break;
                            }
                        }
                    }


                    FileUtils.writeFileForBytesWriteStream(ShineToolGlobal.sourceCommonConfigDirPath + "/mapInfo/" + config.id + ".bin", clientStream);
                }
            }

            if (CommonSetting.serverMapNeedRecast)
            {
                string path = getMapNavFilePath(config.id);

                byte[] bytes = FileUtils.readFileForBytes(path);

                if (bytes != null)
                {
                    stream.writeLen(bytes.Length);
                    stream.writeByteArr(bytes);
                }
                else
                {
                    stream.writeLen(0);
                }
            }
        }

        //写出服务器端配置
        FileUtils.writeFileForBytesWriteStream(ShineToolGlobal.serverSavePath + "/config/mapInfo.bin", stream);

        //调用configExport
        ToolFileUtils.executeServerTool("configExport");
    }