From 8c9f06b6770a35aecd029d0fe45622e3bf5c8171 Mon Sep 17 00:00:00 2001 From: huqibin <762612145@qq.com> Date: Thu, 29 May 2025 14:52:25 +0800 Subject: [PATCH] =?UTF-8?q?lod=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/HQB/SorghumController.cs | 37 ++------------------ Assets/Scripts/HQB/SorghumFieldController.cs | 14 ++++---- 2 files changed, 10 insertions(+), 41 deletions(-) diff --git a/Assets/Scripts/HQB/SorghumController.cs b/Assets/Scripts/HQB/SorghumController.cs index 77ad4a7..ece4ec4 100644 --- a/Assets/Scripts/HQB/SorghumController.cs +++ b/Assets/Scripts/HQB/SorghumController.cs @@ -21,7 +21,7 @@ public class SorghumController : PermanentTriggerBase public bool RandomRotate = true; - LODGroup lodGroup = null; + //LODGroup lodGroup = null; public void Init(SorghumState _state = SorghumState.Healthy, bool _rand = false) { State = _state; @@ -47,12 +47,12 @@ public class SorghumController : PermanentTriggerBase case SorghumState.Diseased: triggerName = "高粱_病株"; this.gameObject.name = "高粱_病株"; - lodGroup = DiseasedStrain.GetComponent(); + //lodGroup = DiseasedStrain.GetComponent(); break; case SorghumState.Healthy: triggerName = "高粱_正常"; this.gameObject.name = "高粱_正常"; - lodGroup = HealthyStrain.GetComponent(); + //lodGroup = HealthyStrain.GetComponent(); break; } @@ -114,37 +114,6 @@ public class SorghumController : PermanentTriggerBase //} } - int GetLODCurShowLevel(Camera cam, LODGroup lodGroup) - { - var inv_SceneViewCamHeight = 1.0f / (cam.pixelHeight - 6.0f); - - var lods = lodGroup.GetLODs(); - for (int lodIDX = 0; lodIDX < lods.Length; lodIDX++) - { - var lod = lods[lodIDX]; - var renderers = lod.renderers; - for (int renderIDX = 0; renderIDX < renderers.Length; renderIDX++) - { - var renderer = renderers[renderIDX]; - var heightInScreen = cam.WorldToScreenPoint(renderer.bounds.min).y - cam.WorldToScreenPoint(renderer.bounds.max).y; - var ratioInScren = Mathf.Abs(heightInScreen * inv_SceneViewCamHeight); - if (ratioInScren > lod.screenRelativeTransitionHeight) - { - return lodIDX; - } - } - } - - return -1; - } - - private float CalculateScreenRelativeHeight(float objectSize, float distance, float fov) - { - // 计算物体在屏幕上的高度比例 - float screenHeight = 2.0f * Mathf.Tan(0.5f * fov * Mathf.Deg2Rad) * distance; - return objectSize / screenHeight; - } - protected override void OnMExit() { if (_highlight != null) diff --git a/Assets/Scripts/HQB/SorghumFieldController.cs b/Assets/Scripts/HQB/SorghumFieldController.cs index 0d1ccc1..bad76ff 100644 --- a/Assets/Scripts/HQB/SorghumFieldController.cs +++ b/Assets/Scripts/HQB/SorghumFieldController.cs @@ -167,13 +167,13 @@ public class SorghumFieldController : MonoBehaviour private void SetRenderersEnabled(bool enabled, GameObject go) { - //GameObject obj = go; - //if (obj == null) obj = this.gameObject; - //Renderer[] renderers = go.GetComponentsInChildren(); - //foreach (Renderer r in renderers) - //{ - // r.enabled = enabled; - //} + GameObject obj = go; + if (obj == null) obj = this.gameObject; + Renderer[] renderers = go.GetComponentsInChildren(); + foreach (Renderer r in renderers) + { + r.enabled = enabled; + } //LODGroup lg = go.GetComponent(); //Debug.Log("LOD组数:" + lg.GetLODs().Length);