コード例 #1
0
        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);
        }