From 8b71351a7b0dd1ad1c47963bcb035b4cbf886b26 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 12 Jun 2026 09:31:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E5=9B=A2=E8=A7=86=E8=A7=89=EF=BC=9A?= =?UTF-8?q?=E7=94=A8=E7=AE=97=E6=B3=95=E7=9C=9F=E5=AE=9E=E5=8D=8A=E5=BE=84?= =?UTF-8?q?+=E9=80=8F=E6=98=8E=E5=BA=A6=EF=BC=8C=E9=9A=8F=E6=89=A9?= =?UTF-8?q?=E6=95=A3=E6=B8=90=E5=A4=A7=E6=B8=90=E6=B7=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../Scripts/Managers/SimulationRunner.cs | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2bd91eb..6ac5d77 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ src/Unity/obj/ src/Unity/Logs/ src/Unity/UserSettings/ unity_plugins/ +nul diff --git a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs index 6a2adbe..3f204cc 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs @@ -92,7 +92,10 @@ namespace CounterDrone.Unity if (snap.EntityType == EntityType.Cloud) { float r = ParseCloudRadius(snap.StateData); + float opacity = ParseCloudOpacity(snap.StateData); go.transform.localScale = UVector3.one * r; + var mat = go.GetComponent().material; + mat.color = new Color(1, 0, 0, opacity); } } @@ -104,8 +107,8 @@ namespace CounterDrone.Unity var prefab = _cloudPrefab != null ? _cloudPrefab : GameObject.CreatePrimitive(PrimitiveType.Sphere); var go = Instantiate(prefab, pos, Quaternion.identity); go.name = cloud.Id; - go.transform.localScale = UVector3.one * 30f; - // 半透明红色 + float r = cloud.Dispersion.Radius; + go.transform.localScale = UVector3.one * r; var mat = go.GetComponent().material; mat.color = new Color(1, 0, 0, 0.3f); _clouds[cloud.Id] = go; @@ -155,7 +158,17 @@ namespace CounterDrone.Unity _entityVisuals[drone.Id] = go; } - private float ParseCloudRadius(string stateData) + private float ParseCloudOpacity(string stateData) + { + try + { + using var doc = JsonDocument.Parse(stateData); + if (doc.RootElement.TryGetProperty("opacity", out var o)) + return o.GetSingle(); + } + catch { } + return 0.5f; + } { try {