Fix default avatar loading error
This commit is contained in:
parent
145bb2e8bf
commit
94690b38e1
@ -52,6 +52,7 @@ namespace Passer {
|
||||
public CachedPossessionBundle possessionBundle;
|
||||
public string assetPath;
|
||||
public GameObject possession;
|
||||
public bool preserved = false; // when the possession was a scenePossession which is preseved
|
||||
|
||||
public static void Update(CachedPossessionBundle cachedBundle, string possessablePath, GameObject prefab) {
|
||||
CachedPossession foundPossession = cache.Find(entry =>
|
||||
@ -184,8 +185,8 @@ namespace Passer {
|
||||
if (possession == null)
|
||||
continue;
|
||||
|
||||
Possession persistentPossession = Add(possession);
|
||||
persistentPossession.scenePossession = PreservePossession(possession);
|
||||
Possession persistentPossession = Add(possession, true);
|
||||
//persistentPossession.scenePossession = PreservePossession(possession);
|
||||
persistentPossession.persistent = possession.crossSite;
|
||||
persistentPossession.removable = removable;
|
||||
}
|
||||
@ -205,7 +206,7 @@ namespace Passer {
|
||||
/// </summary>
|
||||
/// <param name="possessable">The possessable object to add</param>
|
||||
/// <returns>The persistent possession</returns>
|
||||
public Possession Add(Possessable possessable) {
|
||||
public Possession Add(Possessable possessable, bool preserved = false) {
|
||||
if (possessable == null)
|
||||
return null;
|
||||
|
||||
@ -223,6 +224,8 @@ namespace Passer {
|
||||
assetPath = possessable.assetPath,
|
||||
type = possessable.possessionType,
|
||||
};
|
||||
if (preserved)
|
||||
newPossession.scenePossession = PreservePossession(possessable);
|
||||
|
||||
possessions.Add(newPossession);
|
||||
|
||||
@ -231,18 +234,19 @@ namespace Passer {
|
||||
CachedPossession cachedPossession = new CachedPossession() {
|
||||
assetPath = possessable.assetPath,
|
||||
possessionBundle = possessionBundle,
|
||||
possession = possessable.gameObject,
|
||||
possession = preserved ? newPossession.scenePossession.gameObject : possessable.gameObject,
|
||||
preserved = preserved,
|
||||
};
|
||||
cache.Add(cachedPossession);
|
||||
|
||||
//Debug.Log("Possession cache: ");
|
||||
//foreach (CachedPossession poss in cache)
|
||||
// Debug.Log(" * " + poss.assetPath + " || " + poss.possessionBundle + " || " + poss.possession);
|
||||
Debug.Log("Possession cache: ");
|
||||
foreach (CachedPossession poss in cache)
|
||||
Debug.Log(" * " + poss.assetPath + " || " + poss.possessionBundle + " || " + poss.possession + " || " + poss.preserved);
|
||||
|
||||
//Debug.Log("cache: ");
|
||||
//foreach (CachedPossessionBundle pos in bundleCache) {
|
||||
// Debug.Log(" - " + pos.siteLocation + " || " + pos.assetBundle);
|
||||
//}
|
||||
Debug.Log("cache: ");
|
||||
foreach (CachedPossessionBundle pos in bundleCache) {
|
||||
Debug.Log(" - " + pos.siteLocation + " || " + pos.assetBundle);
|
||||
}
|
||||
|
||||
return newPossession;
|
||||
}
|
||||
@ -262,14 +266,14 @@ namespace Passer {
|
||||
private static AssetBundle lastAssetBundle;
|
||||
|
||||
public static IEnumerator RetrievePossessionAsync(Possession possession, System.Action<GameObject> callback) {
|
||||
//Debug.Log("Possession cache: ");
|
||||
//foreach (CachedPossession poss in cache)
|
||||
// Debug.Log(" * " + poss.assetPath + " || " + poss.possessionBundle + " || " + poss.possession);
|
||||
Debug.Log("Possession cache: ");
|
||||
foreach (CachedPossession poss in cache)
|
||||
Debug.Log(" * " + poss.assetPath + " || " + poss.possessionBundle + " || " + poss.possession + " || " + poss.preserved);
|
||||
|
||||
//Debug.Log("cache: ");
|
||||
//foreach (CachedPossessionBundle pos in bundleCache) {
|
||||
// Debug.Log(" - " + pos.siteLocation + " || " + pos.assetBundle);
|
||||
//}
|
||||
Debug.Log("cache: ");
|
||||
foreach (CachedPossessionBundle pos in bundleCache) {
|
||||
Debug.Log(" - " + pos.siteLocation + " || " + pos.assetBundle);
|
||||
}
|
||||
|
||||
if (possession.siteLocation == "") {
|
||||
Debug.Log("Get scene possession");
|
||||
@ -293,7 +297,7 @@ namespace Passer {
|
||||
callback(null);
|
||||
}
|
||||
else {
|
||||
Debug.Log("Load from cache: " + possessablePath);
|
||||
//Debug.Log("Load from cache: " + possessablePath);
|
||||
prefab = foundPossession.possession;
|
||||
if (prefab == null) {
|
||||
Debug.LogError("Could not load " + possessablePath);
|
||||
@ -308,8 +312,15 @@ namespace Passer {
|
||||
if (foundPossession != null && foundPossession.possession != null) {
|
||||
//Debug.Log("Load from cache: " + foundPossession.possession);
|
||||
prefab = foundPossession.possession;
|
||||
if (foundPossession.preserved) {
|
||||
//Debug.Log("preserved possession");
|
||||
prefab.SetActive(true);
|
||||
callback(prefab);
|
||||
yield return null;
|
||||
prefab.SetActive(false);
|
||||
}
|
||||
else
|
||||
callback(prefab);
|
||||
yield break;
|
||||
}
|
||||
|
||||
CachedPossessionBundle foundPossessionBundle = bundleCache.Find(entry => entry.siteLocation == possessableLocation);
|
||||
|
Loading…
x
Reference in New Issue
Block a user