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); }
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)); }