feat(scripting): expose PhysX rigidbody and raycast APIs

This commit is contained in:
2026-04-15 13:58:30 +08:00
parent 914c9361ed
commit bda8a35d77
13 changed files with 787 additions and 0 deletions

View File

@@ -74,6 +74,7 @@ void ScriptEngine::SetRuntimeFixedDeltaTime(float fixedDeltaTime) {
void ScriptEngine::OnRuntimeStart(Components::Scene* scene) {
const float configuredFixedDeltaTime = m_runtimeFixedDeltaTime;
Physics::PhysicsWorld* configuredPhysicsWorld = m_runtimePhysicsWorld;
OnRuntimeStop();
m_runtimeFixedDeltaTime = configuredFixedDeltaTime;
@@ -81,6 +82,7 @@ void ScriptEngine::OnRuntimeStart(Components::Scene* scene) {
return;
}
m_runtimePhysicsWorld = configuredPhysicsWorld;
m_runtimeScene = scene;
m_runtimeRunning = true;
m_runtime->OnRuntimeStart(scene);
@@ -118,6 +120,7 @@ void ScriptEngine::OnRuntimeStop() {
if (!m_runtimeRunning) {
m_runtimeScene = nullptr;
m_runtimePhysicsWorld = nullptr;
m_scriptStates.clear();
m_scriptOrder.clear();
m_runtimeFixedDeltaTime = DefaultFixedDeltaTime;
@@ -137,6 +140,7 @@ void ScriptEngine::OnRuntimeStop() {
m_scriptOrder.clear();
m_runtimeRunning = false;
m_runtimeScene = nullptr;
m_runtimePhysicsWorld = nullptr;
m_runtimeFixedDeltaTime = DefaultFixedDeltaTime;
m_runtime->OnRuntimeStop(stoppedScene);
}
@@ -144,6 +148,7 @@ void ScriptEngine::OnRuntimeStop() {
void ScriptEngine::OnRuntimeSceneReplaced(Components::Scene* scene) {
if (!m_runtimeRunning) {
m_runtimeScene = nullptr;
m_runtimePhysicsWorld = nullptr;
m_runtimeSceneCreatedSubscription = 0;
m_scriptStates.clear();
m_scriptOrder.clear();