eclipse做购物网站,潍坊网站制作报价,婚恋网站模板下载,wordpress安装网站无法# UE5 C UGameInstance 功能及作用 网上有很多文章介绍#xff0c;例如在游戏中只有一个实例#xff0c;换关卡不会丢失等。暂时省略。 # UE5 C UGameInstance 应用 ## 应用一#xff0c;UE5 C UGameInstance 里监听player创建事件 UWebSocketGameInstance.h里的定义 …# UE5 C UGameInstance 功能及作用 网上有很多文章介绍例如在游戏中只有一个实例换关卡不会丢失等。暂时省略。 # UE5 C UGameInstance 应用 ## 应用一UE5 C UGameInstance 里监听player创建事件 UWebSocketGameInstance.h里的定义
UCLASS()
class MYUE521_API UUWebSocketGameInstance : public UGameInstance
{GENERATED_BODY()public:virtual void Init() override;virtual void Shutdown() override;void OnPlayerCreated(ULocalPlayer* player);
}
说明 Init()方法是在UGameInstance.h里定义的。源码里的注解是允许在这里自定义一些实现Shutdown()方法是在UGameInstance.h里定义的。源码里的注解是允许在这里自定义一些清理工作void OnPlayerCreated(ULocalPlayer* player) 方法是我自己定义的方法用来监听创建player以后执行的方法
下面来看一下实现UWebSocketGameInstance.cpp里
void UUWebSocketGameInstance::Init() {Super::Init();OnLocalPlayerAddedEvent.AddUObject(this,UUWebSocketGameInstance::OnPlayerCreated);}void UUWebSocketGameInstance::Shutdown() {//先写自定义的清理工作Super::Shutdown();
}void UUWebSocketGameInstance::OnPlayerCreated(ULocalPlayer* player) {UE_LOG(LogTemp, Warning, TEXT(%s plaer is created), *FString(__FUNCTION__));
}
说明 UE5里的事件绑定这里绑定到自定义的OnPlayerCreated 方法里触发事件OnLocalPlayerAddedEvent的位置在GameInstance.cpp里有AddLocalPlayer(ULocalPlayer* NewLocalPlayer, FPlatformUserId UserId)方法里有OnLocalPlayerAddedEvent.Broadcast(NewLocalPlayer); 通过广播通知 ## 应用二UE5 C UGameInstance 里player转成目标Characher的方法 ACharacter* character UGameplayStatics::GetPlayerCharacter(this-GetWorld(), 0);
Amyue521Character* character2 CastAmyue521Character(character);
if (character2 nullptr) {UE_LOG(LogTemp, Warning, TEXT(%s 1强制类型转换成Amyue521Character失败), *FString(__FUNCTION__));
}
else {UE_LOG(LogTemp, Warning, TEXT(%s 1强制类型转换成Amyue521Character成功), *FString(__FUNCTION__));
}
## 应用三UE5 C UGameInstance 里一些方法罗列
/** Returns number of fully registered local players */
int32 GetNumLocalPlayers() const;/** Returns the local player at a certain index, or null if not found */
ULocalPlayer* GetLocalPlayerByIndex(const int32 Index) const;/** Returns the first local player, will not be null during normal gameplay */
ULocalPlayer* GetFirstGamePlayer() const;/** Returns the player controller assigned to the first local player. If World is specified it will search within that specific world */
APlayerController* GetFirstLocalPlayerController(const UWorld* World nullptr) const;/** Returns the local player assigned to a physical Controller Id, or null if not found */
ULocalPlayer* FindLocalPlayerFromControllerId(const int32 ControllerId) const;/** Returns the local player assigned to this platform user id, or null if not found */
ULocalPlayer* FindLocalPlayerFromPlatformUserId(const FPlatformUserId UserId) const;/** Returns the local player that has been assigned the specific unique net id */
ULocalPlayer* FindLocalPlayerFromUniqueNetId(FUniqueNetIdPtr UniqueNetId) const;
ULocalPlayer* FindLocalPlayerFromUniqueNetId(const FUniqueNetId UniqueNetId) const;
ULocalPlayer* FindLocalPlayerFromUniqueNetId(const FUniqueNetIdRepl UniqueNetId) const;/** Returns const iterator for searching list of local players */
TArrayULocalPlayer*::TConstIterator GetLocalPlayerIterator() const;/** Returns reference to entire local player list */
const TArrayULocalPlayer* GetLocalPlayers() const;
# UE5 C UGameInstance 其他
待补充