using System; using System.Runtime.CompilerServices; namespace BansheeEngine { /// /// Base class for all resources. Resources can be persistently referenced by scene objects or other resources. /// public class Resource : ScriptObject { /// /// Name of the resource. Use primarily for easier identification and not important to the engine itself. /// public string Name { get { return Internal_GetName(mCachedPtr); } } /// /// Returns a universally unique identifier of this resource. /// public string UUID { get { return Internal_GetUUID(mCachedPtr); } } /// /// Releases an internal reference to the resource held by the resources system. /// public void Release() { Internal_Release(mCachedPtr); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern string Internal_GetName(IntPtr nativeInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern string Internal_GetUUID(IntPtr nativeInstance); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_Release(IntPtr nativeInstance); } }