From 5851ce2ea8c2672a4acee848e840ed0f9eb025ba Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 12 Jun 2026 16:04:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ManagerVerification=20+=20SimulationBoot?= =?UTF-8?q?strap=E9=80=82=E9=85=8D=E5=A4=9A=E7=BC=96=E9=98=9F=20Route/Wayp?= =?UTF-8?q?ointGroups?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/check_unity_build.ps1 | 25 ++++++------------ src/Unity/Assets/Editor.meta | 8 ++++++ .../Editor/CompileErrorDetector.cs.meta | 11 ++++++++ .../CounterDrone.Core/CounterDrone.Core.dll | Bin 105472 -> 105472 bytes .../Scripts/Managers/ManagerVerification.cs | 2 +- .../Scripts/Managers/SimulationBootstrap.cs | 2 +- 6 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 src/Unity/Assets/Editor.meta create mode 100644 src/Unity/Assets/Editor/CompileErrorDetector.cs.meta diff --git a/scripts/check_unity_build.ps1 b/scripts/check_unity_build.ps1 index 7175440..83f830d 100644 --- a/scripts/check_unity_build.ps1 +++ b/scripts/check_unity_build.ps1 @@ -1,31 +1,22 @@ -# Unity 脚本编译检查(best-effort) -# 用法:修改 Core 或 Unity 脚本后运行 -# 注意:Unity batchmode 不保证捕获所有编译错误, -# 最终验证需在 Unity Editor 中确认 - +# Unity 脚本编译检查 $ErrorActionPreference = "Stop" $projectRoot = Split-Path -Parent $PSScriptRoot $unityEditor = "C:\Program Files\Unity\Hub\Editor\2022.3.62f3c1\Editor\Unity.exe" $unityProject = "$projectRoot\src\Unity" +# 1. 重建 Core DLL Write-Host "Building Core.dll..." dotnet publish "$projectRoot\src\CounterDrone.Core\CounterDrone.Core.csproj" -c Release -o "$projectRoot\unity_plugins" 2>&1 | Out-Null if ($LASTEXITCODE -ne 0) { Write-Host "Core.dll BUILD FAILED"; exit 1 } +# 2. 更新 Plugins + 清理缓存 Copy-Item "$projectRoot\unity_plugins\*.dll" "$unityProject\Assets\Plugins\CounterDrone.Core\" -Force Remove-Item "$unityProject\Library\ScriptAssemblies" -Recurse -Force -ErrorAction SilentlyContinue +Write-Host "Compiling Unity scripts..." -Write-Host "Compiling Unity scripts... (Editor.log 可能不反映编译错误)" -$result = & $unityEditor -batchmode -quit -projectPath $unityProject 2>&1 -if ($LASTEXITCODE -ne 0) { Write-Host "Unity exited with code $LASTEXITCODE"; exit 1 } +# 3. 编译(CompileErrorDetector 捕获错误并 Exit(-1)) +& $unityEditor -batchmode -projectPath $unityProject -logFile - 2>&1 | Out-Null +if ($LASTEXITCODE -ne 0) { Write-Host "UNITY BUILD FAILED (exit code $LASTEXITCODE)"; exit 1 } -# 额外检查 dotnet build 能否通过(如果项目有 .csproj) -$csproj = Get-ChildItem "$unityProject" -Filter "*.csproj" -Recurse -Depth 1 | Where-Object { $_.Name -notmatch "Editor" } | Select-Object -First 1 -if ($csproj) { - Write-Host "Checking with dotnet build..." - dotnet build $csproj.FullName 2>&1 | Out-Null - if ($LASTEXITCODE -ne 0) { Write-Host "dotnet build FAILED"; exit 1 } -} - -Write-Host "ALL CHECKS PASSED (verify in Unity Editor for final confirmation)" +Write-Host "ALL CHECKS PASSED" exit 0 diff --git a/src/Unity/Assets/Editor.meta b/src/Unity/Assets/Editor.meta new file mode 100644 index 0000000..be6df32 --- /dev/null +++ b/src/Unity/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 08e7346ac5025d9418cab86e7f72dab8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Unity/Assets/Editor/CompileErrorDetector.cs.meta b/src/Unity/Assets/Editor/CompileErrorDetector.cs.meta new file mode 100644 index 0000000..077f567 --- /dev/null +++ b/src/Unity/Assets/Editor/CompileErrorDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e01aeeafabfdbdc4f9c1de138cd6f96b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/Unity/Assets/Plugins/CounterDrone.Core/CounterDrone.Core.dll b/src/Unity/Assets/Plugins/CounterDrone.Core/CounterDrone.Core.dll index d6dac38683642229de1802398d2c1d070ea49e97..4b35554ad9b13554488e8e4b07872ec57cee6791 100644 GIT binary patch delta 247 zcmZqJ!Pc;YZ9)f&;AGbyjXhg?7$=kouodvIXB1mFOg}nDFxRkZ{dS#l#+yu9Z+jS=~HZ!uA*FM`ceamFV z00Bi4(JM1j%)C0nmWotAnR;)!$P~tE1*qsR4yY(d{Z(s&hPn$)+dbQ_R&HNEg|U&v z--yA4!GOVn!5B!I1KAcp(ulzfNT)HR0I?;QZ4Q(*V@PC328yHsRipydn=qIHMGS$Y T1&}rd%9%1)Zm*xo*vJF`mKI7y delta 247 zcmZqJ!Pc;YZ9)f&cV_F)#-6P`j1$TP>?P()N3x{3PTTxe_shL@r|mlBj5nn;%+gHF zlGD=6OifKJ%*;}Z%#1B8QW7mK5{=Ex3@uWVO^qxqERBs4x9d(~Y-VIxr~9a9`j*Lz z0Rl4?O9aL+-gKGkp_!xG`hEU%ktvMT3Q*B6ccG#n_4DsY82q){A7L-lzhe9PDU6LQ z{$>nm45kcb49P$`4M>{;p$UTpkY&b@!e9g>je$H1AUl!45=bWk`Q|`TLm)d9sLK?n T1|)6?6gOf>++IJEv5^S?BA-i- diff --git a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs index bd31ba1..209b63e 100644 --- a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs +++ b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs @@ -52,7 +52,7 @@ namespace CounterDrone.Unity var rec = new DefaultDefenseAdvisor(ammoCatalog).Recommend(new ThreatProfile { Environment = detail.Scene, Targets = detail.Targets, - Route = detail.Route, Waypoints = detail.Waypoints, + Route = detail.Routes[0], Waypoints = detail.WaypointGroups["default"], }); scenarioMgr.SaveCloud(taskId, rec.Best.RecommendedCloud); diff --git a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs index 5a2a2b8..e0b7ee2 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs @@ -67,7 +67,7 @@ namespace CounterDrone.Unity var rec = new DefaultDefenseAdvisor(ammoCatalog).Recommend(new ThreatProfile { Environment = detail.Scene, Targets = detail.Targets, - Route = detail.Route, Waypoints = detail.Waypoints, + Route = detail.Routes[0], Waypoints = detail.WaypointGroups["default"], }); scenario.SaveCloudDispersal(taskId, rec.Best.RecommendedCloud);