feat(scripting): add runtime gameobject lifecycle api

This commit is contained in:
2026-03-27 16:30:16 +08:00
parent 26035e3940
commit a72f9f7f05
10 changed files with 395 additions and 0 deletions

View File

@@ -65,6 +65,8 @@ private:
ScriptEngine() = default;
void CollectScriptComponents(Components::GameObject* gameObject);
void EnsureTrackedScriptsReady(Components::GameObject* gameObject);
void HandleGameObjectCreated(Components::GameObject* gameObject);
ScriptInstanceState* TrackScriptComponent(ScriptComponent* component);
ScriptInstanceState* FindState(const ScriptComponent* component);
const ScriptInstanceState* FindState(const ScriptComponent* component) const;
@@ -79,6 +81,7 @@ private:
IScriptRuntime* m_runtime = &m_nullRuntime;
Components::Scene* m_runtimeScene = nullptr;
bool m_runtimeRunning = false;
uint64_t m_runtimeSceneCreatedSubscription = 0;
std::unordered_map<ScriptInstanceKey, ScriptInstanceState, ScriptInstanceKeyHasher> m_scriptStates;
std::vector<ScriptInstanceKey> m_scriptOrder;