예제 #1
0
    private void OnOpenButtonClick(string dataBaseOpenPath)
    {
        SceneDescriptor sceneDescriptor = SceneDescriptorsHelper.LoadFromFile(dataBaseOpenPath);

        if (!String.IsNullOrEmpty(sceneDescriptor.sceneName))
        {
            scene = new GameObject(sceneDescriptor.sceneName).transform;
        }
        else
        {
            scene = new GameObject("Scene").transform;
        }

        scene.position = new Vector3(0, 0, 0);
        SceneComponent sceneComponent = scene.gameObject.AddComponent <SceneComponent>();

        sceneComponent.SceneSize = sceneDescriptor.sceneSize;

        var environmentFolder = new GameObject(SceneDescriptorsHelper.EnvironmentFolderName).transform;

        environmentFolder.transform.SetParent(scene);

        SpritesCache cache = new SpritesCache();

        SceneDescriptorsHelper.CreateInstances(sceneDescriptor.imagesEnvironment, environmentFolder, cache);
        SceneDescriptorsHelper.CreateInstances(sceneDescriptor.items, scene, cache);
    }
예제 #2
0
    public BuildResult Build(SceneDescriptor sceneDescriptor)
    {
        // in this case scene does not exists
        // so first need to pick items directly from SceneDescriptor
        // and then create objects ONLY for picked items

        SpritesCache cache = new SpritesCache();

        // create scene
        Transform sceneFolder = CreateSceneFolder(sceneDescriptor);

        // load envinronment images
        SceneDescriptorsHelper.CreateInstances(sceneDescriptor.imagesEnvironment, sceneFolder, cache);

        // load items from SceneDescriptor
        var visibleItems = CreateVisibleItems(shuffle(sceneDescriptor.items).ToList(), sceneFolder, cache, _buildParams);

        // and make some of them pickable
        var pickableItems = MakeSomeSceneItemsPickable(visibleItems, _buildParams);

        return(GetBuildResult(pickableItems));
    }