using System; using System.Runtime.CompilerServices; namespace BansheeEngine { /// /// Allows you to store a reference to a resource without needing to have that resource loaded. /// public class ResourceRef : ScriptObject where T : Resource { /// /// Constructor for internal use only. /// private ResourceRef() { } /// /// Checks is the referenced resource loaded /// public bool IsLoaded { get { return Internal_IsLoaded(mCachedPtr); } } /// /// Retrieves the referenced resource. This will load the resources if it is not already loaded. /// /// Type of the resource to load. /// Loaded resource object. public T Get() { return (T)Internal_GetResource(mCachedPtr); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern bool Internal_IsLoaded(IntPtr thisPtr); [MethodImpl(MethodImplOptions.InternalCall)] private static extern Resource Internal_GetResource(IntPtr thisPtr); } }