UClass* ProjectileClass = UFLUtils::LoadClassEx<UClass>("/Game/ThirdContent/MPS_V2/Game/Blueprints/Projectile_BP.Projectile_BP_C");
if (IsValid(ProjectileClass))
{
FTransform BoneTrans = BoneSocket->GetSocketTransform(PistolMeshRef);
FQuat Quat = BoneTrans.GetRotation();
FRotator Rotation = Quat.Rotator();
float Pitch = FirstPersonCamera->GetComponentRotation().Pitch;
FVector Forward = FirstPersonCamera->GetForwardVector();
Rotation = Forward.Rotation();
AActor* Projectile = SCPGAMEINSTANCE(this)->GetWorld()->SpawnActor<AActor>(ProjectileClass, BoneTrans.GetLocation(), Rotation);
}
template<typename T = UObject>
static T* LoadClassEx(FString FilePath)
{
UObject* LoadObj = SyncLoadAsset(FilePath);
return LoadObj == nullptr ? NULL : Cast<T>(LoadObj);
}
TSubclassOf<AActor> BPClass;
if (IsValid(BPClass))
{
int32 GridIndex = grid_info->GetStartGrid();
int32 Row = (GridIndex - 1) / GridX;
int32 Column = (GridIndex - 1) % 4;
FTransform Trans;
float X = CalcXByColumn(Column);
float Y = CalcYByRow(Row);
FVector Location = FVector(X, Y, GridActorZOffset) + SelfLocation;
Trans.SetLocation(Location);
Trans.SetRotation(FQuat::Identity);
Trans.SetScale3D(FVector::OneVector);
AKlotskiGridActor* ResultActor = SCPGAMEINSTANCE(GEngine)->GetWorld()->SpawnActor<AKlotskiGridActor>(BPClass, Trans);
}
FStringClassReference LoginUIBPRef(TEXT("/Game/StartupContent/UMG/Login_Main.Login_Main_C"));
UClass* LoginUIBP = LoginUIBPRef.TryLoadClass<UOnlineIdentityLoginUI>();
LoginUI = CreateWidget<UOnlineIdentityLoginUI>(RGameInstance, LoginUIBP);