diff --git a/Runtime/Visitors/Scripts/VisitorPossessions.cs b/Runtime/Visitors/Scripts/VisitorPossessions.cs index ec0307c..07f4823 100644 --- a/Runtime/Visitors/Scripts/VisitorPossessions.cs +++ b/Runtime/Visitors/Scripts/VisitorPossessions.cs @@ -307,7 +307,7 @@ namespace Passer { callback(null); } else { Debug.Log("Load from cache: " + possessablePath); - prefab = foundPossession.assetBundle.LoadAsset(possessablePath); + prefab = LoadPossessableFromAssetBundle(foundPossession.assetBundle, possessablePath); if (prefab == null) { Debug.LogError("Could not load " + possessablePath); callback(null); @@ -316,7 +316,6 @@ namespace Passer { } } else { - Debug.Log("Cache size: " + cache.Count); CachedPossession foundPossession = cache.Find(entry => entry.siteLocation == possessableLocation); if (foundPossession == null) { #if UNITY_ANDROID @@ -337,17 +336,10 @@ namespace Passer { yield break; } - string possessableName = possessablePath; - int lastSlashIx = possessablePath.LastIndexOf('/'); - if (lastSlashIx >= 0) - possessableName = possessablePath.Substring(lastSlashIx + 1); - - possessableName = possessableName.ToLower(); - - Debug.Log("Load: " + possessableName); - prefab = assetBundle.LoadAsset(possessableName); + Debug.Log("Load: " + possessablePath); + prefab = LoadPossessableFromAssetBundle(assetBundle, possessablePath); if (prefab == null) { - Debug.LogError("Could not load " + possessableName); + Debug.LogError("Could not load " + possessablePath); yield break; } @@ -359,7 +351,7 @@ namespace Passer { } else { Debug.Log("Load from cache: " + possessablePath); - prefab = foundPossession.assetBundle.LoadAsset(possessablePath); + prefab = LoadPossessableFromAssetBundle(foundPossession.assetBundle, possessablePath); if (prefab == null) { Debug.LogError("Could not load " + possessablePath); yield break; @@ -369,6 +361,18 @@ namespace Passer { } } + private static GameObject LoadPossessableFromAssetBundle(AssetBundle assetBundle, string possessablePath) { + string possessableName = possessablePath; + int lastSlashIx = possessablePath.LastIndexOf('/'); + if (lastSlashIx >= 0) + possessableName = possessablePath.Substring(lastSlashIx + 1); + + possessableName = possessableName.ToLower(); + + GameObject prefab = assetBundle.LoadAsset(possessableName); + return prefab; + } + public static void UnloadPossession() { if (lastAssetBundle != null) lastAssetBundle.Unload(true);