CARLA
载入中...
搜索中...
未找到
Unreal
CarlaUE4
Plugins
Carla
Source
Carla
Vehicle
MovementComponents
DefaultMovementComponent.cpp
浏览该文件的文档.
1
// Copyright (c) 2021 Computer Vision Center (CVC) at the Universitat Autonoma
2
// de Barcelona (UAB).
3
// Copyright (c) 2019 Intel Corporation
4
//
5
// This work is licensed under the terms of the MIT license.
6
// For a copy, see <https://opensource.org/licenses/MIT>.
7
8
#include "
DefaultMovementComponent.h
"
9
#include "
Carla/Vehicle/CarlaWheeledVehicle.h
"
10
11
// 为指定的车辆创建并配置一个新的默认运动组件,并将其注册到引擎中。
12
void
UDefaultMovementComponent::CreateDefaultMovementComponent
(
ACarlaWheeledVehicle
*
Vehicle
)
13
{
14
UDefaultMovementComponent
* DefaultMovementComponent = NewObject<UDefaultMovementComponent>(
Vehicle
);
15
Vehicle
->SetCarlaMovementComponent(DefaultMovementComponent);
16
DefaultMovementComponent->RegisterComponent();
17
}
18
19
// 在游戏开始时被调用,用于初始化和设置组件的初始状态。
20
// 该函数调用了父类的 BeginPlay 方法,确保父类的初始化逻辑也得到执行
21
void
UDefaultMovementComponent::BeginPlay
()
22
{
23
Super::BeginPlay();
24
}
25
26
// 处理车辆控制输入并更新车辆的运动组件参数。
27
// 根据给定的控制信息(油门、转向、刹车等)更新车辆的运动状态。
28
// 还会根据反向、手动档等控制设置调整车辆的档位和自动换档行为。
29
void
UDefaultMovementComponent::ProcessControl
(
FVehicleControl
&
Control
)
30
{
31
auto
*MovementComponent =
CarlaVehicle
->GetVehicleMovementComponent();
32
MovementComponent->
SetThrottleInput
(
Control
.
Throttle
);
33
MovementComponent->SetSteeringInput(
Control
.
Steer
);
34
MovementComponent->SetBrakeInput(
Control
.
Brake
);
35
MovementComponent->SetHandbrakeInput(
Control
.
bHandBrake
);
36
if
(
CarlaVehicle
->
GetVehicleControl
().
bReverse
!=
Control
.
bReverse
)
37
{
38
MovementComponent->SetUseAutoGears(!
Control
.
bReverse
);
39
MovementComponent->SetTargetGear(
Control
.
bReverse
? -1 : 1,
true
);
40
}
41
else
42
{
43
MovementComponent->SetUseAutoGears(!
Control
.
bManualGearShift
);
44
if
(
Control
.
bManualGearShift
)
45
{
46
MovementComponent->SetTargetGear(
Control
.
Gear
,
true
);
47
}
48
}
49
Control
.
Gear
= MovementComponent->GetCurrentGear();
50
}
51
52
// FVector GetVelocity() const override;
53
54
// 获取当前车辆的档位。
55
int32
UDefaultMovementComponent::GetVehicleCurrentGear
()
const
56
{
57
return
CarlaVehicle
->GetVehicleMovementComponent()->GetCurrentGear();
58
}
59
60
// 获取当前车辆的前进速度。
61
float
UDefaultMovementComponent::GetVehicleForwardSpeed
()
const
62
{
63
return
CarlaVehicle
->GetVehicleMovementComponent()->GetForwardSpeed();
64
}
Control
FVehicleControl Control
Definition
ActorData.h:119
CarlaWheeledVehicle.h
DefaultMovementComponent.h
Vehicle
@ Vehicle
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Util/EnvironmentObject.h:32
ACarlaWheeledVehicle
Base class for CARLA wheeled vehicles.
Definition
CarlaWheeledVehicle.h:74
ACarlaWheeledVehicle::SetThrottleInput
void SetThrottleInput(float Value)
Definition
CarlaWheeledVehicle.cpp:333
ACarlaWheeledVehicle::GetVehicleControl
const FVehicleControl & GetVehicleControl() const
Vehicle control currently applied to this vehicle.
Definition
CarlaWheeledVehicle.h:96
UBaseCarlaMovementComponent::CarlaVehicle
ACarlaWheeledVehicle * CarlaVehicle
Definition
BaseCarlaMovementComponent.h:42
UDefaultMovementComponent
Definition
DefaultMovementComponent.h:20
UDefaultMovementComponent::GetVehicleForwardSpeed
float GetVehicleForwardSpeed() const override
Definition
DefaultMovementComponent.cpp:61
UDefaultMovementComponent::GetVehicleCurrentGear
int32 GetVehicleCurrentGear() const override
Definition
DefaultMovementComponent.cpp:55
UDefaultMovementComponent::BeginPlay
virtual void BeginPlay() override
Definition
DefaultMovementComponent.cpp:21
UDefaultMovementComponent::ProcessControl
void ProcessControl(FVehicleControl &Control) override
Definition
DefaultMovementComponent.cpp:29
UDefaultMovementComponent::CreateDefaultMovementComponent
static void CreateDefaultMovementComponent(ACarlaWheeledVehicle *Vehicle)
Definition
DefaultMovementComponent.cpp:12
FVehicleControl
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:16
FVehicleControl::Steer
float Steer
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:29
FVehicleControl::Throttle
float Throttle
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:24
FVehicleControl::Brake
float Brake
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:34
FVehicleControl::Gear
int32 Gear
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:55
FVehicleControl::bManualGearShift
bool bManualGearShift
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:49
FVehicleControl::bHandBrake
bool bHandBrake
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:39
FVehicleControl::bReverse
bool bReverse
Definition
Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Vehicle/VehicleControl.h:44
制作者
1.10.0