Update
This commit is contained in:
@@ -38,19 +38,23 @@ namespace Hallucinate.UI
|
||||
|
||||
private async Task EnsureRunnerExists()
|
||||
{
|
||||
if (_runner != null)
|
||||
if (_runner == null)
|
||||
{
|
||||
// Nếu runner cũ vẫn đang chạy hoặc lỗi, dọn dẹp nó
|
||||
await _runner.Shutdown();
|
||||
if (_runner != null && _runner.gameObject != null)
|
||||
{
|
||||
Destroy(_runner);
|
||||
}
|
||||
_runner = null;
|
||||
_runner = GetComponent<NetworkRunner>();
|
||||
}
|
||||
|
||||
if (_runner != null && _runner.IsRunning)
|
||||
{
|
||||
await _runner.Shutdown();
|
||||
}
|
||||
|
||||
if (_runner == null)
|
||||
{
|
||||
_runner = gameObject.AddComponent<NetworkRunner>();
|
||||
}
|
||||
|
||||
_runner = gameObject.AddComponent<NetworkRunner>();
|
||||
_runner.ProvideInput = true;
|
||||
_runner.RemoveCallbacks(this);
|
||||
_runner.AddCallbacks(this);
|
||||
}
|
||||
|
||||
@@ -186,12 +190,17 @@ namespace Hallucinate.UI
|
||||
{
|
||||
runner.Despawn(networkObject);
|
||||
_spawnedCharacters.Remove(player);
|
||||
if (runner.IsServer) runner.Shutdown();
|
||||
// Chỉ Shutdown nếu người thoát chính là Server (Host)
|
||||
if (runner.IsServer && player == runner.LocalPlayer)
|
||||
{
|
||||
runner.Shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnShutdown(NetworkRunner runner, ShutdownReason shutdownReason)
|
||||
{
|
||||
Debug.LogWarning($"[Fusion] Shutdown occurred. Reason: {shutdownReason}");
|
||||
OnShutdownEvent?.Invoke(shutdownReason.ToString());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user