diff --git a/App/scripts/Spinner.cpp b/App/scripts/Spinner.cpp index 3af4af7..ab9239c 100644 --- a/App/scripts/Spinner.cpp +++ b/App/scripts/Spinner.cpp @@ -24,15 +24,24 @@ namespace { void OnUpdate(float dt) override { // 四元数复合绕 Y(避免每帧欧拉↔四元数往返累积失真) + + /* const glm::quat step = glm::angleAxis( glm::radians(m_Speed * dt), glm::vec3(0.0f, 1.0f, 0.0f)); Transform().SetRotationQuat(step * Transform().GetRotationQuat()); + */ } private: float m_Speed = 90.0f; // 度/秒 }; - ENGINE_REGISTER_SCRIPT(Spinner) + static const bool s_Spinner_registered = [] { + ::Engine::Scripting::ScriptRegistry::Register( + "Spinner", []() -> ::Engine::Scope<::Engine::Scripting::ScriptBehavior> { + return ::Engine::CreateScope(); + }); + return true; + }(); } // namespace diff --git a/App/scripts/WASDMove.cpp b/App/scripts/WASDMove.cpp index 724c367..d3a8665 100644 --- a/App/scripts/WASDMove.cpp +++ b/App/scripts/WASDMove.cpp @@ -49,7 +49,7 @@ namespace { } const glm::vec3 vel = move * m_Speed; - if (auto* rb = TryGet(); + if (auto* rb = TryGetComponent(); rb != nullptr && rb->bodyValid && rb->type == Engine::ECS::RigidBodyComponent::BodyType::Dynamic) { // 物理驱动:只覆写水平速度,Y 保留物理积分离散结果 diff --git a/Engine/include/Engine/Physics/CharacterController.h b/Engine/include/Engine/Physics/CharacterController.h index bbae8fd..780b661 100644 --- a/Engine/include/Engine/Physics/CharacterController.h +++ b/Engine/include/Engine/Physics/CharacterController.h @@ -55,7 +55,7 @@ namespace Engine { void Jump(f32 speed); // 垂直速度置 speed(着地方向才有效) bool IsGrounded() const; glm::vec3 GetPosition() const; - void Teleport(const glm::vec3& position); // 编辑器拖动 + void Teleport(const glm::vec3& position) const; // 编辑器拖动 const Params& GetParams() const { return m_Params; } diff --git a/Engine/include/Engine/Scripting/Script.h b/Engine/include/Engine/Scripting/Script.h index 3815a1b..6324ddb 100644 --- a/Engine/include/Engine/Scripting/Script.h +++ b/Engine/include/Engine/Scripting/Script.h @@ -51,12 +51,12 @@ namespace Engine { } template - T& Get() { + T& GetComponent() { return m_Scene->GetRegistry().get(m_Entity); } template - T* TryGet() { + T* TryGetComponent() { return m_Scene->GetRegistry().try_get(m_Entity); } diff --git a/Engine/src/Physics/CharacterController.cpp b/Engine/src/Physics/CharacterController.cpp index a6e2115..f6193d4 100644 --- a/Engine/src/Physics/CharacterController.cpp +++ b/Engine/src/Physics/CharacterController.cpp @@ -84,7 +84,7 @@ namespace Engine { static_cast(p.GetZ())}; } - void CharacterController::Teleport(const glm::vec3 &position) { + void CharacterController::Teleport(const glm::vec3 &position) const { m_Character->SetPosition( JPH::RVec3(position.x, position.y, position.z)); }