Component.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. namespace BansheeEngine
  4. {
  5. public class Component : GameObject
  6. {
  7. // Internal use only
  8. protected Component()
  9. {
  10. Internal_CreateInstance(this);
  11. }
  12. public SceneObject sceneObject
  13. {
  14. get { return Internal_GetSceneObject(mCachedPtr); }
  15. }
  16. [MethodImpl(MethodImplOptions.InternalCall)]
  17. internal static extern SceneObject Internal_CreateInstance(Component instance);
  18. [MethodImpl(MethodImplOptions.InternalCall)]
  19. internal static extern Component Internal_AddComponent(SceneObject parent, Type type);
  20. [MethodImpl(MethodImplOptions.InternalCall)]
  21. internal static extern Component Internal_GetComponent(SceneObject parent, Type type);
  22. [MethodImpl(MethodImplOptions.InternalCall)]
  23. internal static extern Component[] Internal_GetComponents(SceneObject parent);
  24. [MethodImpl(MethodImplOptions.InternalCall)]
  25. internal static extern Component Internal_RemoveComponent(SceneObject parent, Type type);
  26. [MethodImpl(MethodImplOptions.InternalCall)]
  27. internal static extern SceneObject Internal_GetSceneObject(IntPtr nativeInstance);
  28. }
  29. }