private static void BuildLayerInstances(LDtkDataLevel level, LDtkProjectAssets assets) { _layerSortingOrder = 0; foreach (LDtkDataLayer layer in level.layerInstances) { BuildLayerInstance(layer, assets); } }
private static void BuildLayerInstance(LDtkDataLayer layer, LDtkProjectAssets assets) { if (layer.IsIntGridLayer) { BuildIntGridLayer(layer, assets.CollisionValues, assets.TilemapPrefab); } if (layer.IsAutoTilesLayer) { BuildTilesetLayer(layer, layer.autoLayerTiles, assets.Tilesets, assets.TilemapPrefab); } if (layer.IsGridTilesLayer) { BuildTilesetLayer(layer, layer.gridTiles, assets.Tilesets, assets.TilemapPrefab); } if (layer.IsEntityInstancesLayer) { BuildEntityInstanceLayer(layer, assets.EntityInstances); } }
private static void BuildProcess(LDtkDataProject project, LDtkDataLevel level, LDtkProjectAssets assets) { InitStaticTools(project); BuildLayerInstances(level, assets); DisposeStaticTools(); }
public static void BuildLevel(LDtkDataProject project, LDtkLevelIdentifier levelToBuild, LDtkProjectAssets assets) { if (assets == null) { Debug.LogError("LDtk: ProjectAssets object is null; not building level."); return; } if (levelToBuild == null) { Debug.LogError("LDtk: LDtkLevelIdentifier object is null; not building level."); return; } if (!LDtkUnityTilesetBuilder.ValidateTilemapPrefabRequirements(assets.TilemapPrefab)) { return; } bool success = GetProjectLevelByID(project.levels, levelToBuild, out LDtkDataLevel level); if (!success) { return; } string debugLvlName = $"\"{level.identifier}\""; //Debug.Log($"LDtk: Building level: {debugLvlName}"); Stopwatch levelBuildTimer = Stopwatch.StartNew(); BuildProcess(project, level, assets); levelBuildTimer.Stop(); double ms = levelBuildTimer.ElapsedMilliseconds; Debug.Log($"LDtk: Built level {debugLvlName} in {ms}ms ({ms/1000}s)"); OnLevelBuilt?.Invoke(level); }