コード例 #1
0
    public void Save(EditableScene scene)
    {
        var data = scene.GetData();

        Loader.SaveScene(PathHelper.GetSceneBinPath(scene.Guid), data);

        var terrinPath = PathHelper.GetTerrainBinPath(scene.Terrain.Data.Guid, scene.Guid);

        if (!File.Exists(terrinPath))
        {
            Loader.SaveObj(terrinPath, scene.Terrain.Data);
        }
    }
コード例 #2
0
    public void TurnOnModeWith(Guid guid)
    {
        scene = mcManager.LoadScene(guid);
        scene.gameObject.transform.parent = sceneContiner.transform;
        scene.transform.localPosition     = new Vector3(0, 0, 0);
        scene.transform.localScale        = new Vector3(0.1f, 0.1f, 0.1f);

        sceneContiner.transform.rotation = oculusBase.rotation;
        var positionOffset = oculusBase.forward * McConsts.TerrN * scene.transform.lossyScale.x - oculusBase.up;

        sceneContiner.transform.position = oculusBase.position + positionOffset;

        menuSceneController.UpdatePhoto(PathHelper.GetScenePngPath(scene.Guid));
        TurnOnCurrentMode();
        ModelsListChanged();
    }
コード例 #3
0
    private void ExitToMainMode()
    {
        sceneContiner.SetActive(false);
        menuSceneController.SetInactive();
        controllerRaycast.SetActive(false);

        string tmpPath = PathHelper.GetSceneTmpPngPath(scene.Guid);

        if (File.Exists(tmpPath))
        {
            File.Delete(tmpPath);
        }

        exitToMainModeSubject.OnNext(Unit.Default);
        scene.Destroy();
        scene = null;
    }
コード例 #4
0
    private void LoadModelsOnScene(EditableScene scene, List <McSceneModelData> Models)
    {
        scene.ModelsOnTerrain = new List <McObject>();
        foreach (var modelSceneData in Models)
        {
            var modelObj = GameObject.Instantiate(scene.Models[modelSceneData.Guid].GameObject);
            modelObj.name = McConsts.ObjectPrefix + modelSceneData.Guid.ToString();

            modelObj.transform.parent        = scene.transform;
            modelObj.transform.localPosition = modelSceneData.Position;
            modelObj.transform.localRotation = Quaternion.Euler(modelSceneData.Rotation);
            modelObj.transform.localScale    = modelSceneData.Scale;

            modelObj.SetActive(true);

            scene.ModelsOnTerrain.Add(new McObject(modelSceneData.Guid, modelObj));
        }
    }
コード例 #5
0
    private void SaveSceneAndExitToMainMode()
    {
        mcManager.Save(scene);
        sceneContiner.SetActive(false);
        menuSceneController.SetInactive();
        controllerRaycast.SetActive(false);

        string path    = PathHelper.GetScenePngPath(scene.Guid);
        string tmpPath = PathHelper.GetSceneTmpPngPath(scene.Guid);

        if (File.Exists(tmpPath))
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }
            File.Move(tmpPath, path);
        }

        scene.Destroy();
        scene = null;
        exitToMainModeSubject.OnNext(Unit.Default);
    }