Exemplo n.º 1
0
 private IPropagatorBlock <SceneResource, LoadedScene> CreateSceneLoader(ExecutionDataflowBlockOptions dataflowOptions) =>
 new TransformBlock <SceneResource, LoadedScene>(r =>
 {
     var scene = new LoadedScene(r.Resource.Name.Replace(".scn", ""), new TileScene(diContainer, r.Resource));
     stepScenesLoaded.Increment();
     return(scene);
 }, dataflowOptions);
 private void AddScene(LoadedScene loadedScene)
 {
     scenesList.ItemsSource = new List <LoadedScene>(
         scenesList.ItemsSource as List <LoadedScene>
         )
     {
         loadedScene
     };
 }
    private IEnumerator LoadTerrain()
    {
        Instantiate(TerrainLoadingCanvasPrefab).TerrainLoader = this;

        yield return(null);

        //Load Navmesh's asset bundle
        if (!string.IsNullOrEmpty(NavMeshBundlePath))
        {
            AssetBundleCreateRequest navMeshBundleRequest = AssetBundle.LoadFromFileAsync(NavMeshBundlePath);

            AssetBundle loadedNavMeshBundle = navMeshBundleRequest.assetBundle;

            var navMesh = loadedNavMeshBundle.LoadAssetAsync("navmesh");
            yield return(navMesh);
        }
        //Load the terrain's assetbundle
        var bundleLoadRequest = AssetBundle.LoadFromFileAsync(AssetBundlePath);

        yield return(bundleLoadRequest);

        LoadState = TerrainLoadState.Loading;
        var loadedAssetBundle = bundleLoadRequest.assetBundle;
        var terrainSceneName  = Path.GetFileNameWithoutExtension(loadedAssetBundle.GetAllScenePaths()[0]);

        assetLoadRequest = SceneManager.LoadSceneAsync(loadedAssetBundle.GetAllScenePaths()[0], LoadSceneMode.Additive);
        yield return(assetLoadRequest);

        loadedAssetBundle.Unload(false);

        LoadedScene = SceneManager.GetSceneByName(terrainSceneName);

        LoadState = TerrainLoadState.TerrainOnly;

        if (ImprovedTerrain)
        {
            StartCoroutine(LoadImprovedTerrainCoroutine());
        }

        Invoke_TerrainOnlyLoaded();

        PutCopyFull       = LoadedScene.GetRootGameObjects()[0].GetComponentInChildren <PutCopy>();
        PutCopyFull.Done += OptimizeTerrain;

        if (Application.isEditor)
        {
            LoadState = TerrainLoadState.BeforeCombine;

            Invoke_TerrainFullyLoadedBeforeCombine();

            LoadState = TerrainLoadState.Fully;

            Invoke_TerrainFullyLoaded();
        }
    }
        private void DeleteBtn_Click(object sender, RoutedEventArgs e)
        {
            Button      button      = sender as Button;
            LoadedScene loadedScene = button?.DataContext as LoadedScene;

            if (loadedScene != null)
            {
                scenesList.ItemsSource = new List <LoadedScene>((scenesList.ItemsSource as List <LoadedScene>)
                                                                .Where(ls => ls.Id != loadedScene.Id));
            }
        }
Exemplo n.º 5
0
        public DrawableObject()
            : base()
        {
            _color         = Color.White;
            _spriteEffects = SpriteEffects.None;
            _spriteOptions = SpriteOptions.Default;
            _visible       = true;
            _opacity       = 1.0f;

            LoadedScene.OrderDrawable(this);
        }
Exemplo n.º 6
0
        protected override void LoadContent()
        {
            base.LoadContent();
            Log.DumpFileName = "Log.Chess.txt";
            LoadScene <GameScene>();

            DebugDrawEnabled        = true;
            DebugPhysicsViewEnabled = true;

            Log.Message(string.Format("Scene '{0}' loaded", LoadedScene.GetType().Name));
        }
    private void OptimizeTerrain()
    {
        if (!Application.isEditor)
        {
            LoadState = TerrainLoadState.BeforeCombine;

            Invoke_TerrainFullyLoadedBeforeCombine();

            StaticBatchingUtility.Combine(LoadedScene.GetRootGameObjects()[0]);
            LoadState = TerrainLoadState.Fully;

            Invoke_TerrainFullyLoaded();
        }
    }