From dbded979a116a51549300eb688fcba86bf4c8ad3 Mon Sep 17 00:00:00 2001 From: Cameron Date: Sun, 12 May 2024 10:37:52 -0700 Subject: [PATCH] fix: Separate levels checking null for artifact assets in case it's never generated by the project importer --- .../ScriptedImporter/LDtkLevelImporter.cs | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/Assets/LDtkUnity/Editor/ScriptedImporter/LDtkLevelImporter.cs b/Assets/LDtkUnity/Editor/ScriptedImporter/LDtkLevelImporter.cs index 22ab7a26..8421e447 100644 --- a/Assets/LDtkUnity/Editor/ScriptedImporter/LDtkLevelImporter.cs +++ b/Assets/LDtkUnity/Editor/ScriptedImporter/LDtkLevelImporter.cs @@ -92,9 +92,13 @@ protected override void Import() CacheSchemaDefs(_projectJson, _levelJson); Profiler.EndSample(); - Profiler.BeginSample("InitializeDefinitionObjectsFromLevel"); - var tilesets = MakeTilesetDict(_projectImporter, _projectJson); - DefinitionObjects.InitializeFromLevel(_projectImporter.GetArtifactAssets()._definitions, tilesets); + Profiler.BeginSample("InitializeDefinitionObjects"); + if (!InitializeDefinitionObjects()) + { + Profiler.EndSample(); + FailImport(); + return; + } Profiler.EndSample(); Profiler.BeginSample("BuildLevel"); @@ -106,6 +110,18 @@ protected override void Import() Profiler.EndSample(); } + private bool InitializeDefinitionObjects() + { + LDtkArtifactAssets artifacts = _projectImporter.GetArtifactAssets(); + if (artifacts == null) + { + return false; + } + var tilesets = MakeTilesetDict(_projectImporter, _projectJson); + DefinitionObjects.InitializeFromLevel(artifacts._definitions, tilesets); + return true; + } + private void BuildLevel() { var preAction = new LDtkAssetProcessorActionCache();