CARLA
 
载入中...
搜索中...
未找到
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
10
11// 为指定的车辆创建并配置一个新的默认运动组件,并将其注册到引擎中。
13{
14 UDefaultMovementComponent* DefaultMovementComponent = NewObject<UDefaultMovementComponent>(Vehicle);
15 Vehicle->SetCarlaMovementComponent(DefaultMovementComponent);
16 DefaultMovementComponent->RegisterComponent();
17}
18
19// 在游戏开始时被调用,用于初始化和设置组件的初始状态。
20// 该函数调用了父类的 BeginPlay 方法,确保父类的初始化逻辑也得到执行
22{
23 Super::BeginPlay();
24}
25
26// 处理车辆控制输入并更新车辆的运动组件参数。
27// 根据给定的控制信息(油门、转向、刹车等)更新车辆的运动状态。
28// 还会根据反向、手动档等控制设置调整车辆的档位和自动换档行为。
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);
37 {
38 MovementComponent->SetUseAutoGears(!Control.bReverse);
39 MovementComponent->SetTargetGear(Control.bReverse ? -1 : 1, true);
40 }
41 else
42 {
43 MovementComponent->SetUseAutoGears(!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// 获取当前车辆的档位。
56{
57 return CarlaVehicle->GetVehicleMovementComponent()->GetCurrentGear();
58}
59
60// 获取当前车辆的前进速度。
62{
63 return CarlaVehicle->GetVehicleMovementComponent()->GetForwardSpeed();
64}
FVehicleControl Control
Definition ActorData.h:119
Base class for CARLA wheeled vehicles.
void SetThrottleInput(float Value)
const FVehicleControl & GetVehicleControl() const
Vehicle control currently applied to this vehicle.
float GetVehicleForwardSpeed() const override
int32 GetVehicleCurrentGear() const override
void ProcessControl(FVehicleControl &Control) override
static void CreateDefaultMovementComponent(ACarlaWheeledVehicle *Vehicle)