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