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

@@ -12,6 +12,12 @@
#include <vector>
namespace XCEngine {
namespace Physics {
class PhysicsWorld;
} // namespace Physics
namespace Scripting {
class ScriptComponent;
@@ -25,6 +31,8 @@ public:
IScriptRuntime* GetRuntime() const { return m_runtime; }
void SetRuntimeFixedDeltaTime(float fixedDeltaTime);
float GetRuntimeFixedDeltaTime() const { return m_runtimeFixedDeltaTime; }
void SetRuntimePhysicsWorld(Physics::PhysicsWorld* physicsWorld) { m_runtimePhysicsWorld = physicsWorld; }
Physics::PhysicsWorld* GetRuntimePhysicsWorld() const { return m_runtimePhysicsWorld; }
void OnRuntimeStart(Components::Scene* scene);
void OnRuntimeStop();
@@ -153,6 +161,7 @@ private:
NullScriptRuntime m_nullRuntime;
IScriptRuntime* m_runtime = &m_nullRuntime;
Components::Scene* m_runtimeScene = nullptr;
Physics::PhysicsWorld* m_runtimePhysicsWorld = nullptr;
bool m_runtimeRunning = false;
float m_runtimeFixedDeltaTime = DefaultFixedDeltaTime;
uint64_t m_runtimeSceneCreatedSubscription = 0;