Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
VrMovementComponent.h
Go to the documentation of this file.
1#pragma once
3#include <glm/glm.hpp>
4
5namespace Input {
6 class XrInputHandler;
7}
8
9namespace EngineCore {
10 class Headset;
11
22 public:
23 static constexpr bool IsUnique = true;
24
31 VrMovementComponent(Scene* owningScene, Headset* headset, Input::XrInputHandler* inputHandler);
32
33 ~VrMovementComponent() override = default;
34
35 void beginPlay() override;
36 void tick(double deltaTime) override;
37 void endPlay() override;
38
42 void setMoveSpeed(float speed) { moveSpeed_ = speed; }
43 [[nodiscard]] float getMoveSpeed() const { return moveSpeed_; }
44
48 void setVerticalSpeed(float speed) { verticalSpeed_ = speed; }
49 [[nodiscard]] float getVerticalSpeed() const { return verticalSpeed_; }
50
54 void setDeadzone(float deadzone) { deadzone_ = deadzone; }
55 [[nodiscard]] float getDeadzone() const { return deadzone_; }
56
57 private:
58 glm::vec3 getHeadsetForwardXZ() const;
59
60 Headset* headset_ = nullptr;
62
63 float moveSpeed_ = 3.0f;
64 float verticalSpeed_ = 2.0f;
65 float deadzone_ = 0.15f;
66 };
67
68}
LogicComponent(Scene *owningScene)
A scene is the overarching structure which can spawn actors.
Definition Scene.h:17
void setDeadzone(float deadzone)
Sets the deadzone for thumbstick input (0.0 to 1.0)
Input::XrInputHandler * inputHandler_
void beginPlay() override
Called when the component is added to the scene or the game starts.
void tick(double deltaTime) override
Called every frame if ticking is enabled.
void setMoveSpeed(float speed)
Sets the horizontal movement speed in units per second.
void setVerticalSpeed(float speed)
Sets the vertical movement speed in units per second.
void endPlay() override
Called when the component is removed or the game ends.
~VrMovementComponent() override=default
VrMovementComponent(Scene *owningScene, Headset *headset, Input::XrInputHandler *inputHandler)
Constructs the VR movement component.
Log category system implementation.