BsScriptGameObjectManager.h 914 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "BsScriptEnginePrerequisites.h"
  3. #include "BsModule.h"
  4. #include <mono/jit/jit.h>
  5. namespace BansheeEngine
  6. {
  7. class BS_SCR_BE_EXPORT ScriptGameObjectManager : public Module<ScriptGameObjectManager>
  8. {
  9. public:
  10. ScriptGameObjectManager();
  11. ScriptComponent* createScriptComponent(const GameObjectHandle<ManagedComponent>& component);
  12. ScriptSceneObject* createScriptSceneObject(const HSceneObject& sceneObject);
  13. ScriptSceneObject* createScriptSceneObject(MonoObject* existingInstance, const HSceneObject& sceneObject);
  14. ScriptComponent* getScriptComponent(const GameObjectHandle<ManagedComponent>& component);
  15. ScriptSceneObject* getScriptSceneObject(const HSceneObject& sceneObject);
  16. void destroyScriptGameObject(ScriptGameObject* gameObject);
  17. private:
  18. UnorderedMap<UINT64, ScriptGameObject*> mScriptGameObjects;
  19. MonoClass* mSceneObjectClass;
  20. };
  21. }