UE4:开发大全
基础数据
bool BOOL TCHAR
uint8 int8 uint16 int16 uint32 int32 uint64 int64
float double PRINT
复杂数据
FVector Float FName FText FString FRotator
TArray<FEditedDocumentInfo>
TObjectPtr<UBTCompositeNode>
FString<->Array
1.FString->Array
FString JsonStr;
TArray<uint8> content;
content.SetNum(JsonStr.Len());
memcpy(content.GetData(), TCHAR_TO_ANSI(*JsonStr), JsonStr.Len());
2.Array->FString
TArray<uint8> content
...
const std::string cstr(reinterpret_cast<const char*>(content.GetData()), content.Num());
UE_LOG(VRSLog, Warning, TEXT("%s"), *frameAsFString);
FString<->FText
1.FString->FText
FString Str = Text("str");
FText Text = FText::FromString(Str);
2.FText->FString
FString Name = NameDesc->GetText().ToString();
FString<->std::string
1.FString->std::string
#include <string>
...
FString UE4Str = "Flowers";
std::string MyStdString(TCHAR_TO_UTF8(*UE4Str));
2.std::string->FString
#include <string>
...
std::string TestString = "Happy";
FString HappyString(TestString.c_str());
坐标系
打印日志
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, )
UE_LOG(LogTemp, Warning, TEXT("hello!"));
蓝图
C++
//BlueprintCallable 有执行引脚 返回值在调用时创建一个局部变量
UFUNCTION(BlueprintCallable, Category = "MyFunction")
void A();
//BlueprintPure 没有执行引脚 一般声明为static 没有输入输出引脚
UFUNCTION(BlueprintPure, Category = "MyFunction")
void B();
//GameMode 游戏模式
//Character 游戏人物
//GetWorld()
UWorld* World = FAITestHelpers::GetWorld();
UWorld& World = GetWorld();
//类型转换
Cast<UBehaviorTreeComponent>(BrainComp)
动画系统
导入一个人物包含:纹理 材质 骨骼(Skeleton)骨骼网络体 物理资产
每个动画都是动画序列 加在一起就是混合动画 动画合成 蒙太奇动画(这样过渡才自然)
所有动画由动画蓝图控制,包含状态机用来变量控制
插件
virtual void StartupModule() override;
virtual void ShutdownModule() override;
粒子系统
Niagara粒子系统
输入输出
引擎-输入-轴映射
轴和操作映射现已废弃,请改用增强输入操作和输入映射上下文
游戏模式
默认Pawn类
HUD类
这个一般是以多人界面UI同步用的
玩家控制器类
游戏状态类
玩家状态类
旁观者类
代理事件
单播 多播