CARLA
 
载入中...
搜索中...
未找到
SoilTypeManager.h
浏览该文件的文档.
1// 版权所有 (c) 2017 巴塞罗那自治大学 (UAB) 计算机视觉中心 (CVC)。本作品根据 MIT 许可证的条款进行许可。有关副本,请参阅 <https://opensource.org/licenses/MIT>。
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
8#include "SoilTypeManager.generated.h"
9// 枚举类型,表示不同的土壤类型及其对应的地形力学类型
10UENUM(BlueprintType)
17// 结构体,包含土壤类型的属性
18USTRUCT(BlueprintType)
20{
21 GENERATED_BODY()
22// 土壤类型枚举
23 UPROPERTY(EditAnywhere, BlueprintReadWrite)
24 TEnumAsByte<ESoilTerramechanicsType> TerrainType;
25// 将土壤类型转换为字符串
26 const FString ToString() const
27 {
28 switch(TerrainType)
29 {
31 return "None";
33 return "Desert";
35 return "Forest";
36 }
37 return "";
38 };
39};
40// 管理土壤类型的Actor类
41UCLASS()
42class CARLA_API ASoilTypeManager : public AActor
43{
44 GENERATED_BODY()
45
46private:
47// 通用地形属性
48 UPROPERTY(EditAnywhere)
49 FSoilTerramechanicsProperties GeneralTerrainProperties;
50// 每个瓦片的地形属性
51 UPROPERTY(EditAnywhere)
52 TMap<FIntVector, FSoilTerramechanicsProperties> TilesTerrainProperties;
53 // 大地图管理器的引用
54 UPROPERTY(EditAnywhere)
55 ALargeMapManager* LargeMapManager;
56
57public:
58 //设置此角色属性的默认值
60// 可编辑的属性,车辆类
61 UPROPERTY(EditAnywhere, BlueprintReadWrite)
62 TSubclassOf<AActor> CarClass;
63
64protected:
65 //在游戏开始时或生成时调用
66 virtual void BeginPlay() override;
67
68public:
69 // 获取通用地形属性
70 UFUNCTION(Category="MapGen|Soil Manager")
71 FSoilTerramechanicsProperties GetGeneralTerrainProperties();
72// 根据全局位置获取地形属性
73 UFUNCTION(Category="MapGen|Soil Manager")
74 FSoilTerramechanicsProperties GetTerrainPropertiesAtGlobalLocation(FVector VehicleLocation);
75// 根据局部位置获取地形属性
76 UFUNCTION(Category="MapGen|Soil Manager")
77 FSoilTerramechanicsProperties GetTerrainPropertiesAtLocalLocation(FVector VehicleLocation);
78// 设置通用地形属性
79 UFUNCTION(Category="MapGen|Soil Manager")
80 void SetGeneralTerrainProperties(FSoilTerramechanicsProperties TerrainProperties);
81 // 为特定瓦片添加地形属性
82 UFUNCTION(Category="MapGen|Soil Manager")
83 void AddTerrainPropertiesToTile(int TileX, int TileY, FSoilTerramechanicsProperties TerrainProperties);
84 // 清除所有地形属性
85 UFUNCTION(Category="MapGen|Soil Manager")
86 void ClearTerrainPropertiesMap();
87 // 每帧调用
88 virtual void Tick(float DeltaSeconds) override;
89
90};
sode override
Definition ActorData.h:280
ESoilTerramechanicsType
@ DESERT
@ FOREST
@ NONE_SOIL