1.通过路径读取文件/资源
ConstructorHelpers : : FObjectFinder <USkeletalMesh /*类型名*/> objFinder(TEXT("/Game/mesh/.../SK_PlayerMesh" /*路径*/ )); //在这个路径里找SK_M...资源,命名。
if ( objFinder. Succeeded() ) //是否成功找到资源里,可以用 .Succeeded()
{
Mesh -> SetSkeletalMesh ( objFinder. Object ) ; //为毛要 .Object ?
}
/* FClassFinder
2.变量类型尽量使用基类类型
UPROPERTY() //使用基类的好处是方便以后套用子类。
TSubclassOf <UBaseItemWdget> 命名;
3.从路径中加载数据表
A = LoadObject <UDataTable> ( nullptr , TEXT("路径/..")) ; //返回空 / 路径中的数据表。
4.DataAsset的c++用法
Class 类名 : public UDataAsset { ...}
Class 类名 : public UPrimaryDataAsset {...}
4.创建世界场景设置
Class MyWorldSetting :public AWorldSettings {...} /* 继承AWorldSettings */
那么在c++中如何获得 WorldSetting ?
//通过获取游戏模式 -> 获得世界 -> 获取世界设置;
AWorldSettings* MyWorldSetting_ptr = UGamePlayStatics :: GetGameMode(this) -> GetWorld() ->GetWorldSettings() ;
//将世界设置转化为自己的世界设置;
MyWorldSettings* ptr_MySetting = cast < MyWorldSettings > ( MyWorldSetting_ptr) ;
5.怎么使用Cast to
cast < 要转化成的目标类型 > (要转化的原型); //即:将(..)cast to <..>,
//转化后返回的是一个<..>类型的值 或者 nullptr