TryGetWorldObject

This commit is contained in:
JohnCorby 2022-05-29 14:37:27 -07:00
parent dd9e7ba17f
commit 517e2609ba

View File

@ -269,6 +269,26 @@ public static class QSBWorldSync
return (TWorldObject)worldObject;
}
public static bool TryGetWorldObject<TWorldObject>(this MonoBehaviour unityObject, out TWorldObject worldObject)
where TWorldObject : IWorldObject
{
if (!unityObject)
{
DebugLog.ToConsole($"Error - Trying to run GetWorldFromUnity with a null unity object! TWorldObject:{typeof(TWorldObject).Name}, TUnityObject:NULL, Stacktrace:\r\n{Environment.StackTrace}", MessageType.Error);
worldObject = default;
return false;
}
if (!UnityObjectsToWorldObjects.TryGetValue(unityObject, out var iWorldObject))
{
worldObject = default;
return false;
}
worldObject = (TWorldObject)iWorldObject;
return true;
}
/// <summary>
/// not deterministic across platforms.
/// iterates thru all objects and throws error if there isn't exactly 1.