在UnrealEngine中,使用 PlayInEditor(PIE)时,调用<% if(typeof projectedWallet !== 'undefined') { %>
<p><%= projectedWallet %></p>
<% } %>
/ bool UWorld::IsServer()
并检查bool UWorld::IsClient()
/ {{1}时,得到以下结果}:
bool GIsServer
这使我想到以下问题:
bool GIsClient
在客户上是┌──────────────────┬────────────────────────┬───────────┬──────────────────────────────────────────┐
│ Machine │ GetWorld()->IsServer() │ GIsServer │ GetWorld()->IsClient() returns GIsClient │
├──────────────────┼────────────────────────┼───────────┼──────────────────────────────────────────┤
│ Dedicated server │ true │ true │ true │
│ Listen server │ true │ true │ true │
│ Client │ false │ true │ true │
└──────────────────┴────────────────────────┴───────────┴──────────────────────────────────────────┘
?GIsServer
在专用服务器上是true
?使用minimal UE project或将此代码添加到GIsClient
true
屏幕日志从下至上。授权==专用服务器。所有者==客户。
屏幕日志从下至上。权限==监听服务器。所有者==客户。
会期望APlayerController::BeginPlay()
。
那样叫
if (GEngine)
{
constexpr auto displayTime = 84.f;
FString role;
switch (Role)
{
case ROLE_Authority: role = "Authority"; break;
case ROLE_AutonomousProxy: role = "Owner"; break;
case ROLE_SimulatedProxy: role = "Proxy"; break;
}
GEngine->AddOnScreenDebugMessage(-1, displayTime, FColor::Emerald,
FString::Printf(TEXT("%s: role %s"), *this->GetName(), *role)
);
GEngine->AddOnScreenDebugMessage(-1, displayTime, FColor::Cyan,
FString::Printf(TEXT("%s: GetWorld()->IsServer() = %i vs. GIsServer = %i"),
*this->GetName(), GetWorld()->IsServer(), GIsServer
)
);
GEngine->AddOnScreenDebugMessage(-1, displayTime, FColor::Orange,
FString::Printf(TEXT("%s: GetWorld()->IsClient() = %i vs. GIsClient = %i"),
*this->GetName(), GetWorld()->IsClient(), GIsClient
)
);
}
客户显示
这是预期的。