本文整理汇总了C++中ULocalPlayer::GetControllerId方法的典型用法代码示例。如果您正苦于以下问题:C++ ULocalPlayer::GetControllerId方法的具体用法?C++ ULocalPlayer::GetControllerId怎么用?C++ ULocalPlayer::GetControllerId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ULocalPlayer
的用法示例。
在下文中一共展示了ULocalPlayer::GetControllerId方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnEndTurn
void APuzzlePresetPlayerController::OnEndTurn()
{
/*UPuzzlePresetGameInstance* ppgi = Cast<UPuzzlePresetGameInstance>(GetGameInstance());
ULocalPlayer* LocalPlayer = GetLocalPlayer();
ppgi->HostSession(MakeShareable(LocalPlayer->GetControllerId()),)
return;*/
IOnlineSubsystem* ion = IOnlineSubsystem::Get(FName("Steam"));
if (ion != nullptr)
{
ULocalPlayer* LocalPlayer = GetLocalPlayer();
if (LocalPlayer && LocalPlayer->GetControllerId() != -1)
{
UE_LOG(LogTemp, Warning, TEXT("steam user name: %s"), *PlayerState->PlayerName);
uint8 status = ion->GetIdentityInterface()->GetLoginStatus(LocalPlayer->GetControllerId());
UE_LOG(LogTemp, Warning, TEXT("steam user status: %d"), status);
}
/*if (ion->InitSteamworksClient(false, 480))
{
UE_LOG(LogTemp, Warning, TEXT("Steam API initialized succesfully!"));
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Failed to initialize Steam API :("));
}*/
}
}
示例2: Activate
void UGetFriendsCallbackProxy::Activate()
{
if (!PlayerControllerWeakPtr.IsValid())
{
// Fail immediately
UE_LOG(AdvancedGetFriendsLog, Warning, TEXT("GetFriends Failed received a bad player controller!"));
TArray<FBPFriendInfo> EmptyArray;
OnFailure.Broadcast(EmptyArray);
return;
}
IOnlineFriendsPtr Friends = Online::GetFriendsInterface();
if (Friends.IsValid())
{
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerControllerWeakPtr->Player);
Friends->ReadFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Type::Default)), FriendListReadCompleteDelegate);
return;
}
// Fail immediately
TArray<FBPFriendInfo> EmptyArray;
OnFailure.Broadcast(EmptyArray);
}
示例3: StartPlatformEnvironmentCheck
void UUpdateManager::StartPlatformEnvironmentCheck()
{
IOnlineSubsystem* OnlineSubConsole = IOnlineSubsystem::GetByPlatform();
if (!bPlatformEnvironmentDetected &&
OnlineSubConsole != nullptr &&
OnlineSubConsole->GetIdentityInterface().IsValid())
{
SetUpdateState(EUpdateState::DetectingPlatformEnvironment);
ULocalPlayer* LP = GetGameInstance()->GetFirstGamePlayer();
if (LP != nullptr)
{
const int32 ControllerId = LP->GetControllerId();
OnLoginConsoleCompleteHandle = OnlineSubConsole->GetIdentityInterface()->AddOnLoginCompleteDelegate_Handle(
ControllerId,
FOnLoginCompleteDelegate::CreateUObject(this, &ThisClass::PlatformEnvironmentCheck_OnLoginConsoleComplete)
);
OnlineSubConsole->GetIdentityInterface()->Login(ControllerId, FOnlineAccountCredentials());
}
}
else
{
StartHotfixCheck();
}
}
示例4: IsAFriend
void UAdvancedFriendsLibrary::IsAFriend(APlayerController *PlayerController, const FBPUniqueNetId UniqueNetId, bool &IsFriend)
{
if (!PlayerController)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad Player Controller!"));
return;
}
if (!UniqueNetId.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Had a bad UniqueNetId!"));
return;
}
IOnlineFriendsPtr FriendsInterface = Online::GetFriendsInterface();
if (!FriendsInterface.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Failed to get friends interface!"));
return;
}
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
if (!Player)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("IsAFriend Failed to get LocalPlayer!"));
return;
}
IsFriend = FriendsInterface->IsFriend(Player->GetControllerId(), *UniqueNetId.GetUniqueNetId(), EFriendsLists::ToString(EFriendsLists::Type::Default));
}
示例5: IsInvertedYAxisDirty
bool UAmethystPersistentUser::IsInvertedYAxisDirty() const
{
bool bIsInvertedYAxisDirty = false;
if (GEngine)
{
TArray<APlayerController*> PlayerList;
GEngine->GetAllLocalPlayerControllers(PlayerList);
for (auto It = PlayerList.CreateIterator(); It; ++It)
{
APlayerController* PC = *It;
if (!PC || !PC->Player || !PC->PlayerInput)
{
continue;
}
// Update key bindings for the current user only
ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(PC->Player);
if(!LocalPlayer || LocalPlayer->GetControllerId() != UserIndex)
{
continue;
}
bIsInvertedYAxisDirty |= PC->PlayerInput->GetInvertAxis("Lookup") != GetInvertedYAxis();
bIsInvertedYAxisDirty |= PC->PlayerInput->GetInvertAxis("LookupRate") != GetInvertedYAxis();
}
}
return bIsInvertedYAxisDirty;
}
示例6: SendSessionInviteToFriends
void UAdvancedFriendsLibrary::SendSessionInviteToFriends(APlayerController *PlayerController, const TArray<FBPUniqueNetId> &Friends, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
{
if (!PlayerController)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Had a bad Player Controller!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
if (Friends.Num() < 1)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Had no friends in invitation array!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
IOnlineSessionPtr SessionInterface = Online::GetSessionInterface();
if (!SessionInterface.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Failed to get session interface!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
if (!Player)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend failed to get LocalPlayer!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
TArray<TSharedRef<const FUniqueNetId>> List;
for (int i = 0; i < Friends.Num(); i++)
{
TSharedRef<const FUniqueNetId> val(Friends[i].UniqueNetId.ToSharedRef());
//TSharedRef<const FUniqueNetId> val(Friends[i].GetUniqueNetId());
List.Add(val);
}
if (SessionInterface->SendSessionInviteToFriends(Player->GetControllerId(), GameSessionName, List))
{
Result = EBlueprintResultSwitch::Type::OnSuccess;
return;
}
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
示例7: GetStoredFriendsList
void UAdvancedFriendsLibrary::GetStoredFriendsList(APlayerController *PlayerController, TArray<FBPFriendInfo> &FriendsList)
{
if (!PlayerController)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriendsList Had a bad Player Controller!"));
return;
}
IOnlineFriendsPtr FriendsInterface = Online::GetFriendsInterface();
if (!FriendsInterface.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriendsList Failed to get friends interface!"));
return;
}
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
if (!Player)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriendsList Failed to get LocalPlayer!"));
return;
}
TArray< TSharedRef<FOnlineFriend> > FriendList;
FriendsInterface->GetFriendsList(Player->GetControllerId(), EFriendsLists::ToString((EFriendsLists::Type::Default)), FriendList);
for (int32 i = 0; i < FriendList.Num(); i++)
{
TSharedRef<FOnlineFriend> Friend = FriendList[i];
FBPFriendInfo BPF;
BPF.OnlineState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
BPF.DisplayName = Friend->GetDisplayName();
BPF.RealName = Friend->GetRealName();
BPF.UniqueNetId.SetUniqueNetId(Friend->GetUserId());
BPF.bIsPlayingSameGame = Friend->GetPresence().bIsPlayingThisGame;
BPF.PresenceInfo.bIsOnline = Friend->GetPresence().bIsOnline;
BPF.PresenceInfo.bIsPlaying = Friend->GetPresence().bIsPlaying;
BPF.PresenceInfo.PresenceState = ((EBPOnlinePresenceState::Type)((int32)Friend->GetPresence().Status.State));
BPF.PresenceInfo.StatusString = Friend->GetPresence().Status.StatusStr;
BPF.PresenceInfo.bIsJoinable = Friend->GetPresence().bIsJoinable;
BPF.PresenceInfo.bIsPlayingThisGame = Friend->GetPresence().bIsPlayingThisGame;
FriendsList.Add(BPF);
}
}
示例8: IsAimSensitivityDirty
bool UAmethystPersistentUser::IsAimSensitivityDirty() const
{
bool bIsAimSensitivityDirty = false;
// Fixme: UAmethystPersistentUser is not setup to work with multiple worlds.
// For now, user settings are global to all world instances.
if (GEngine)
{
TArray<APlayerController*> PlayerList;
GEngine->GetAllLocalPlayerControllers(PlayerList);
for (auto It = PlayerList.CreateIterator(); It; ++It)
{
APlayerController* PC = *It;
if (!PC || !PC->Player || !PC->PlayerInput)
{
continue;
}
// Update key bindings for the current user only
ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(PC->Player);
if(!LocalPlayer || LocalPlayer->GetControllerId() != UserIndex)
{
continue;
}
// check if the aim sensitivity is off anywhere
for (int32 Idx = 0; Idx < PC->PlayerInput->AxisMappings.Num(); Idx++)
{
FInputAxisKeyMapping &AxisMapping = PC->PlayerInput->AxisMappings[Idx];
if (AxisMapping.AxisName == "Lookup" || AxisMapping.AxisName == "LookupRate" || AxisMapping.AxisName == "Turn" || AxisMapping.AxisName == "TurnRate")
{
if (FMath::Abs(AxisMapping.Scale) != GetAimSensitivity())
{
bIsAimSensitivityDirty = true;
break;
}
}
}
}
}
return bIsAimSensitivityDirty;
}
示例9: SendSessionInviteToFriend
void UAdvancedFriendsLibrary::SendSessionInviteToFriend(APlayerController *PlayerController, const FBPUniqueNetId &FriendUniqueNetId, TEnumAsByte<EBlueprintResultSwitch::Type> &Result)
{
if (!PlayerController)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Had a bad Player Controller!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
if (!FriendUniqueNetId.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Had a bad UniqueNetId!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
IOnlineSessionPtr SessionInterface = Online::GetSessionInterface();
if (!SessionInterface.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend Failed to get session interface!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
if (!Player)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("SendSessionInviteToFriend failed to get LocalPlayer!"));
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
if (SessionInterface->SendSessionInviteToFriend(Player->GetControllerId(), GameSessionName, *FriendUniqueNetId.GetUniqueNetId()))
{
Result = EBlueprintResultSwitch::Type::OnSuccess;
return;
}
Result = EBlueprintResultSwitch::Type::OnFailure;
return;
}
示例10: TellInputAboutKeybindings
void UAmethystPersistentUser::TellInputAboutKeybindings()
{
TArray<APlayerController*> PlayerList;
GEngine->GetAllLocalPlayerControllers(PlayerList);
for (auto It = PlayerList.CreateIterator(); It; ++It)
{
APlayerController* PC = *It;
if (!PC || !PC->Player || !PC->PlayerInput)
{
continue;
}
// Update key bindings for the current user only
ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(PC->Player);
if(!LocalPlayer || LocalPlayer->GetControllerId() != UserIndex)
{
continue;
}
//set the aim sensitivity
for (int32 Idx = 0; Idx < PC->PlayerInput->AxisMappings.Num(); Idx++)
{
FInputAxisKeyMapping &AxisMapping = PC->PlayerInput->AxisMappings[Idx];
if (AxisMapping.AxisName == "Lookup" || AxisMapping.AxisName == "LookupRate" || AxisMapping.AxisName == "Turn" || AxisMapping.AxisName == "TurnRate")
{
AxisMapping.Scale = (AxisMapping.Scale < 0.0f) ? -GetAimSensitivity() : +GetAimSensitivity();
}
}
PC->PlayerInput->ForceRebuildingKeyMaps();
//invert it, and if does not equal our bool, invert it again
if (PC->PlayerInput->GetInvertAxis("LookupRate") != GetInvertedYAxis())
{
PC->PlayerInput->InvertAxis("LookupRate");
}
if (PC->PlayerInput->GetInvertAxis("Lookup") != GetInvertedYAxis())
{
PC->PlayerInput->InvertAxis("Lookup");
}
}
}
示例11: ClientMutePlayer
void FPlayerMuteList::ClientMutePlayer(APlayerController* OwningPC, const FUniqueNetIdRepl& MuteId)
{
const TSharedPtr<const FUniqueNetId>& PlayerIdToMute = MuteId.GetUniqueNetId();
// Add to the filter list on clients (used for peer to peer voice)
AddIdToMuteList(VoicePacketFilter, PlayerIdToMute);
// Use the local player to determine the controller id
ULocalPlayer* LP = Cast<ULocalPlayer>(OwningPC->Player);
if (LP != NULL)
{
UWorld* World = OwningPC->GetWorld();
IOnlineVoicePtr VoiceInt = Online::GetVoiceInterface(World);
if (VoiceInt.IsValid())
{
// Have the voice subsystem mute this player
VoiceInt->MuteRemoteTalker(LP->GetControllerId(), *PlayerIdToMute, false);
}
}
}
示例12: GetFriend
void UAdvancedFriendsLibrary::GetFriend(APlayerController *PlayerController, const FBPUniqueNetId FriendUniqueNetId, FBPFriendInfo &Friend)
{
if (!PlayerController)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriend Had a bad Player Controller!"));
return;
}
if (!FriendUniqueNetId.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriend Had a bad UniqueNetId!"));
return;
}
IOnlineFriendsPtr FriendsInterface = Online::GetFriendsInterface();
if (!FriendsInterface.IsValid())
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriend Failed to get friends interface!"));
return;
}
ULocalPlayer* Player = Cast<ULocalPlayer>(PlayerController->Player);
if (!Player)
{
UE_LOG(AdvancedFriendsLog, Warning, TEXT("GetFriend failed to get LocalPlayer!"));
return;
}
TSharedPtr<FOnlineFriend> fr = FriendsInterface->GetFriend(Player->GetControllerId(), *FriendUniqueNetId.GetUniqueNetId(), EFriendsLists::ToString(EFriendsLists::Type::Default));
if (fr.IsValid())
{
Friend.DisplayName = fr->GetDisplayName();
Friend.OnlineState = ((EBPOnlinePresenceState::Type)((int32)fr->GetPresence().Status.State));
Friend.RealName = fr->GetRealName();
Friend.UniqueNetId.SetUniqueNetId(fr->GetUserId());
Friend.bIsPlayingSameGame = fr->GetPresence().bIsPlayingThisGame;
}
}
示例13: StartPatchCheck
void UUpdateManager::StartPatchCheck()
{
ensure(ChecksEnabled());
UGameInstance* GameInstance = GetGameInstance();
check(GameInstance);
bool bStarted = false;
SetUpdateState(EUpdateState::CheckingForPatch);
IOnlineSubsystem* OnlineSubConsole = IOnlineSubsystem::GetByPlatform();
if (OnlineSubConsole)
{
IOnlineIdentityPtr OnlineIdentityConsole = OnlineSubConsole->GetIdentityInterface();
if (OnlineIdentityConsole.IsValid())
{
ULocalPlayer* LP = GameInstance->GetFirstGamePlayer();
if (LP != nullptr)
{
const int32 ControllerId = LP->GetControllerId();
TSharedPtr<const FUniqueNetId> UserId = OnlineIdentityConsole->GetUniquePlayerId(ControllerId);
if (UserId.IsValid())
{
bStarted = true;
OnlineIdentityConsole->GetUserPrivilege(*UserId,
EUserPrivileges::CanPlayOnline, IOnlineIdentity::FOnGetUserPrivilegeCompleteDelegate::CreateUObject(this, &ThisClass::OnCheckForPatchComplete, true));
}
else
{
UE_LOG(LogHotfixManager, Warning, TEXT("No valid platform user id when starting patch check!"));
}
}
else
{
UE_LOG(LogHotfixManager, Warning, TEXT("No local player to perform check!"));
}
}
}
else
{
if (GameInstance->IsDedicatedServerInstance())
{
bStarted = true;
PatchCheckComplete(EPatchCheckResult::NoPatchRequired);
}
else
{
UWorld* World = GetWorld();
IOnlineIdentityPtr IdentityInt = Online::GetIdentityInterface(World);
if (IdentityInt.IsValid())
{
ULocalPlayer* LP = GameInstance->GetFirstGamePlayer();
if (LP != nullptr)
{
const int32 ControllerId = LP->GetControllerId();
TSharedPtr<const FUniqueNetId> UserId = IdentityInt->GetUniquePlayerId(ControllerId);
if (!bInitialUpdateFinished && !UserId.IsValid())
{
// Invalid user for "before title/login" check, underlying code doesn't need a valid user currently
UserId = IdentityInt->CreateUniquePlayerId(TEXT("InvalidUser"));
}
if (UserId.IsValid())
{
bStarted = true;
IdentityInt->GetUserPrivilege(*UserId,
EUserPrivileges::CanPlayOnline, IOnlineIdentity::FOnGetUserPrivilegeCompleteDelegate::CreateUObject(this, &ThisClass::OnCheckForPatchComplete, false));
}
else
{
UE_LOG(LogHotfixManager, Warning, TEXT("No valid user id when starting patch check!"));
}
}
else
{
UE_LOG(LogHotfixManager, Warning, TEXT("No local player to perform check!"));
}
}
}
}
if (!bStarted)
{
// Any failure to call GetUserPrivilege will result in completing the flow via this path
PatchCheckComplete(EPatchCheckResult::PatchCheckFailure);
}
}