123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- namespace Animancer
- {
-
-
-
- public interface IWrapper
- {
-
-
-
-
-
-
- object WrappedObject { get; }
-
- }
-
- public static partial class AnimancerUtilities
- {
-
-
- public static object GetWrappedObject(object wrapper)
- {
- while (wrapper is IWrapper targetWrapper)
- wrapper = targetWrapper.WrappedObject;
- return wrapper;
- }
-
-
-
- public static bool TryGetWrappedObject<T>(object wrapper, out T wrapped) where T : class
- {
- while (true)
- {
- wrapped = wrapper as T;
- if (wrapped != null)
- return true;
- if (wrapper is IWrapper targetWrapper)
- wrapper = targetWrapper.WrappedObject;
- else
- return false;
- }
- }
-
- }
- }
|