Prefab.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using System.Runtime.InteropServices;
  4. namespace BansheeEngine
  5. {
  6. public class Prefab : Resource
  7. {
  8. // For internal use by the runtime
  9. private Prefab()
  10. { }
  11. public Prefab(SceneObject so)
  12. {
  13. IntPtr soPtr = so.GetCachedPtr();
  14. Internal_CreateInstance(this, soPtr);
  15. }
  16. public SceneObject Root
  17. {
  18. get { return Internal_GetRoot(mCachedPtr); }
  19. }
  20. public SceneObject Instantiate()
  21. {
  22. return Internal_Instantiate(mCachedPtr);
  23. }
  24. [MethodImpl(MethodImplOptions.InternalCall)]
  25. private static extern void Internal_CreateInstance(Prefab instance, IntPtr so);
  26. [MethodImpl(MethodImplOptions.InternalCall)]
  27. private static extern SceneObject Internal_GetRoot(IntPtr thisPtr);
  28. [MethodImpl(MethodImplOptions.InternalCall)]
  29. private static extern SceneObject Internal_Instantiate(IntPtr thisPtr);
  30. }
  31. }