public void Start() { var msw = new MyStopWatch(); msw.StartSegment("Start"); TaskUtils.ExecuteActionWithOverridenMultithreading(true, () => { _feConfiguration = new FEConfiguration(new FilePathsConfiguration()) { Multithreading = Multithreading }; _feConfiguration.EngraveTerrainFeatures = true; _feConfiguration.EngraveRoadsInTerrain = true; _feConfiguration.TerrainShapeDbConfiguration.UseTextureLoadingFromDisk = true; _feConfiguration.TerrainShapeDbConfiguration.UseTextureSavingToDisk = false; _feConfiguration.TerrainShapeDbConfiguration.MergeTerrainDetail = true; var containerGameObject = GameObject.FindObjectOfType <ComputeShaderContainerGameObject>(); VegetationConfiguration.FeConfiguration = _feConfiguration; _heightmapListenersContainer = new HeightmapSegmentFillingListenersContainer(); _gameInitializationFields = new GameInitializationFields(); _updaterUntilException = new UpdaterUntilException(); _movementCustodian = new TravellerMovementCustodian(Traveller); _gameInitializationFields.SetField(_movementCustodian); _ultraUpdatableContainer = ETerrainTestUtils.InitializeFinalElements(_feConfiguration, containerGameObject, _gameInitializationFields, initializeLegacyDesignBodySpotUpdater: false); var startConfiguration = ETerrainHeightPyramidFacadeStartConfiguration.DefaultConfiguration; var initializingHelper = InitializeETerrain(startConfiguration); initializingHelper.InitializeUTService(new UnityThreadComputeShaderExecutorObject()); InitializeUI(startConfiguration); Traveller.transform.position = new Vector3(startConfiguration.InitialTravellerPosition.x, Traveller.transform.position.y, startConfiguration.InitialTravellerPosition.y); }); Debug.Log("Init time " + msw.CollectResults()); _initializationWasSuccessfull = true; }