diff --git a/Source/Engine/Content/JsonAsset.cpp b/Source/Engine/Content/JsonAsset.cpp
index 5015d61d9..398a4f1bd 100644
--- a/Source/Engine/Content/JsonAsset.cpp
+++ b/Source/Engine/Content/JsonAsset.cpp
@@ -15,6 +15,7 @@
#include "Engine/Serialization/JsonTools.h"
#include "Engine/Content/Factories/JsonAssetFactory.h"
#include "Engine/Core/Cache.h"
+#include "Engine/Core/Config/GameSettings.h"
#include "Engine/Debug/Exceptions/JsonParseException.h"
#include "Engine/Profiler/ProfilerCPU.h"
#include "Engine/Scripting/Scripting.h"
diff --git a/Source/Engine/Content/JsonAsset.h b/Source/Engine/Content/JsonAsset.h
index d865e8b96..4ab180717 100644
--- a/Source/Engine/Content/JsonAsset.h
+++ b/Source/Engine/Content/JsonAsset.h
@@ -93,6 +93,16 @@ public:
///
void* Instance;
+ ///
+ /// Gets the deserialized native object instance of the given type. Returns null if asset is not loaded or loaded object has different type.
+ ///
+ /// The asset instance object or null.
+ template
+ T* GetInstance() const
+ {
+ return Instance && InstanceType.IsAssignableFrom(T::TypeInitializer) ? (T*)Instance : nullptr;
+ }
+
protected:
// [JsonAssetBase]