1.好用的ue4命令
log logonline all 打开所有log类型为logonline的log的输出
log logtexture off 关闭log类型为logtexture的log输出
ToggleDebugCamera 可以让相机和玩家脱离
Slomo 0.001 可实现慢放,比如子弹事件效果
2.ue4调试常用变量
(1).UActorComponnet的常用调试变量
OwnerPrivate
此变量保存UActorComponent所属Actor的指针
(1).USceneComponent的常用于调试的变量
ComponentToWorld
通过变量ComponentToWorld,可查看此Component的世界变换
RelativeLocation
相对于父Component的(即AttachParent)Location
RelativeRotation
相对于父Component的Rotation
(2).AActor常用调试变量
Actor的Transform实际上是Actor中的RootComponent的Transform,因此可通过如下方式来获取
RootComponent->ComponentToWorld
RootComponent->RelativeLocation
RootComponent->RelativeRotation
配合数据断点,很容易调试Actor或Component的Transform同预想的不一致的bug
3.如何修改本地Camera的位置和朝向
通过派生APlayerCameraManager,重写函数UpdateViewTarget,此函数声明如下:
virtual void UpdateViewTarget(FTViewTarget& OutVT, float DeltaTime) override;
通过修改一下两个属性
OutVT.POV.Location
OutVT.POV.Rotation
即可修改本地Camer的位置和朝向
4.如何组合两个Rotator
蓝图调用CombineRotators
c++调用UKismetMathLibrary::ComposeRotators
FRotator UKismetMathLibrary::ComposeRotators(FRotator A, FRotator B)
{
FQuat AQuat = FQuat(A);
FQuat BQuat = FQuat(B);
return FRotator(BQuat*AQuat);
}
5.如何获取UClass和UStruct的名字
FString StructName = FMyStruct::StaticStruct()->GetName();
FString ClassName = FMyClass::StaticClass()->GetName();
或者从UObject对象获取
UClass * ObjClass = Obj->GetClass();
ClassName = ObjClass->GetName();