From 469e3f0204c74a3f6a8b2bfef3b80b205d9ecb95 Mon Sep 17 00:00:00 2001 From: Le Duc Anh Date: Fri, 27 Feb 2026 17:47:26 +0700 Subject: [PATCH] fix the issue with terrain holder and TickTask --- .../Network/CSNetwork/CSNetwork.csproj.meta | 7 ------- Assets/PerfectWorld/Scripts/Task/TaskClient.cs | 3 ++- .../Scripts/UI/GamePlay/EC_GameUIMan.cs | 8 +------- .../PerfectWorld/Scripts/World/TerrainHolder.cs | 15 ++++++++++++++- Assets/Scripts/CECHostPlayer.cs | 2 +- 5 files changed, 18 insertions(+), 17 deletions(-) delete mode 100644 Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta b/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta deleted file mode 100644 index 333a9b1482..0000000000 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d0c06c588e2a6442488a3542551fb243 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PerfectWorld/Scripts/Task/TaskClient.cs b/Assets/PerfectWorld/Scripts/Task/TaskClient.cs index da8da4bc20..cb6d999443 100644 --- a/Assets/PerfectWorld/Scripts/Task/TaskClient.cs +++ b/Assets/PerfectWorld/Scripts/Task/TaskClient.cs @@ -24,7 +24,7 @@ namespace BrewMonster.Scripts.Task public static void OnTaskCheckStatus(TaskInterface pTask) { - // 版本与交付合法性检查 // Version and deliver legality check + // 版本与交付合法性检查 // Version and deliver legality check // CheckVersion not exposed on TaskInterface; skipping version check if (pTask == null || !pTask.CheckVersion() || @@ -202,6 +202,7 @@ namespace BrewMonster.Scripts.Task var uiMan = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan(); if (uiMan != null) { + // check if this is the main thread uiMan.PopupTaskFinishDialog(pTempl.GetID(), pTalk); s_finishDlgShownTime = ulCurTime; } diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/EC_GameUIMan.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/EC_GameUIMan.cs index 9da8fc3fb2..a744f3d6ec 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/EC_GameUIMan.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/EC_GameUIMan.cs @@ -1,18 +1,12 @@ using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay; -using BrewMonster.Common; using BrewMonster.Managers; -using BrewMonster.Network; using BrewMonster.Scripts.Task; using BrewMonster.Scripts.Task.UI; using BrewMonster.Scripts.UI; -using ModelRenderer.Scripts.Common; -using System; using System.Collections.Generic; -using System.IO; using System.Linq; -using Unity.VisualScripting; + using UnityEngine; -using static UnityEngine.Rendering.DebugUI; namespace BrewMonster.UI { diff --git a/Assets/PerfectWorld/Scripts/World/TerrainHolder.cs b/Assets/PerfectWorld/Scripts/World/TerrainHolder.cs index 42c7c5a5a7..84b551dab8 100644 --- a/Assets/PerfectWorld/Scripts/World/TerrainHolder.cs +++ b/Assets/PerfectWorld/Scripts/World/TerrainHolder.cs @@ -23,6 +23,7 @@ namespace BrewMonster private List _candidatesForLoading = new List(); private List _objectsToUnload = new List(); + private CECHostPlayer _hostPlayer; private Vector3 _lastHostPosOxz; private bool _hasLastHostPos = false; private Vector3 _currentHostPosOxz; @@ -108,11 +109,17 @@ namespace BrewMonster while (!destroyToken.IsCancellationRequested) { + if (!_hostPosReady) + { + await UniTask.Delay(1000, cancellationToken: destroyToken); + continue; + } + if (_hasLastHostPos) { if ((_currentHostPosOxz - _lastHostPosOxz).sqrMagnitude < minMoveSqr) { - await UniTask.Delay(10, cancellationToken: destroyToken); + await UniTask.Delay(1000, cancellationToken: destroyToken); continue; } } @@ -191,6 +198,12 @@ namespace BrewMonster private void UpdateGlobalDataForStreaming() { _realTimeSinceStartUp = Time.realtimeSinceStartup; + if (_hostPlayer == null) + { + _hostPlayer = CECGameRun.Instance.GetHostPlayer(); + } + if (_hostPlayer == null) return; + _currentHostPosOxz = CECGameRun.Instance.GetHostPlayer().GetPosVector3(); _currentHostPosOxz.y = 0f; _hostPosReady = true; diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 4b3521f7d9..820ec89cb6 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -333,7 +333,7 @@ namespace BrewMonster m_PetOptCnt.Reset(true); // run a process on background to keep track of task status. - UniTask.RunOnThreadPool(TickTask, false, this.GetCancellationTokenOnDestroy()).Forget(); + TickTask().Forget(); } public bool LoadResources()