feat(scripting): support managed script component api

This commit is contained in:
2026-03-28 00:43:13 +08:00
parent 6bde199393
commit e522bad582
8 changed files with 349 additions and 37 deletions

View File

@@ -37,7 +37,8 @@ void ScriptEngine::OnRuntimeStart(Components::Scene* scene) {
CollectScriptComponents(root);
}
for (const ScriptInstanceKey& key : m_scriptOrder) {
const std::vector<ScriptInstanceKey> startupKeys = m_scriptOrder;
for (const ScriptInstanceKey& key : startupKeys) {
auto it = m_scriptStates.find(key);
if (it == m_scriptStates.end()) {
continue;
@@ -87,7 +88,8 @@ void ScriptEngine::OnFixedUpdate(float fixedDeltaTime) {
return;
}
for (const ScriptInstanceKey& key : m_scriptOrder) {
const std::vector<ScriptInstanceKey> updateKeys = m_scriptOrder;
for (const ScriptInstanceKey& key : updateKeys) {
auto it = m_scriptStates.find(key);
if (it == m_scriptStates.end()) {
continue;
@@ -107,7 +109,8 @@ void ScriptEngine::OnUpdate(float deltaTime) {
return;
}
for (const ScriptInstanceKey& key : m_scriptOrder) {
const std::vector<ScriptInstanceKey> updateKeys = m_scriptOrder;
for (const ScriptInstanceKey& key : updateKeys) {
auto it = m_scriptStates.find(key);
if (it == m_scriptStates.end()) {
continue;
@@ -133,7 +136,8 @@ void ScriptEngine::OnLateUpdate(float deltaTime) {
return;
}
for (const ScriptInstanceKey& key : m_scriptOrder) {
const std::vector<ScriptInstanceKey> updateKeys = m_scriptOrder;
for (const ScriptInstanceKey& key : updateKeys) {
auto it = m_scriptStates.find(key);
if (it == m_scriptStates.end()) {
continue;