| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- using Newtonsoft.Json;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using Unity.Mathematics;
 
- using Unity.VisualScripting;
 
- using UnityEngine;
 
- public class StaticLod : MonoBehaviour
 
- {
 
-     public List<StaticImportant> staticImportants;
 
-     public Dictionary<string, StaticImportant> staticImportantsDic;
 
-     public static StaticLod instance;
 
-     public bool lodAvalible = true;
 
-     public StaticImportant currentStatic;
 
-     public GameObject hetiGaoLiang;
 
-     float interVal = 0;
 
-     // Start is called before the first frame update
 
-     void Awake()
 
-     {
 
-         instance = this;
 
-         staticImportantsDic = new Dictionary<string, StaticImportant>();
 
-         staticImportants = new List<StaticImportant>();
 
-         for (int i = 0; i < this.transform.childCount; i++) {
 
-             StaticImportant si = this.transform.GetChild(i).GetComponent<StaticImportant>();
 
-             if (si != null)
 
-             {
 
-                 if (si.important)
 
-                 {
 
-                     staticImportants.Add(si);
 
-                     //si.Hide();
 
-                 }
 
-                 staticImportantsDic.Add(si.gameObject.name, si);
 
-                 
 
-             }
 
-         }
 
-     }
 
-     public void OnFoucusStatic(int i) {
 
-         if (currentStatic != null)
 
-             currentStatic.ReleaseSacnMode();
 
-         if (i < 0)
 
-         {
 
-             currentStatic = staticImportants[staticImportants.Count - math.abs(i)];
 
-         }
 
-         else {
 
-             currentStatic = staticImportants[i];
 
-         }
 
-         
 
-         currentStatic.ForceSacnMode();
 
-     }
 
-     public int OnFoucusStatic(StaticImportant si)
 
-     {
 
-         if (currentStatic != null)
 
-             currentStatic.ReleaseSacnMode();
 
-         currentStatic = si;
 
-         currentStatic.ForceSacnMode();
 
-         return staticImportants.IndexOf(si);
 
-     }
 
-     public void OnFoucusStatic(string name_pri)
 
-     {
 
-         if (currentStatic != null)
 
-             currentStatic.ReleaseSacnMode();
 
-         currentStatic = staticImportantsDic[name_pri];
 
-         currentStatic.ForceSacnMode();
 
-     }
 
-     public GameObject GetStaticObj(string name_pri)
 
-     {
 
-        return staticImportantsDic[name_pri].gameObject;
 
-     }
 
-     // Update is called once per frame
 
-     void Update()
 
-     {
 
-         interVal -= Time.deltaTime;
 
-         if (CameraManager.instance.mainCamera.enabled)
 
-         {
 
-             if (lodAvalible)
 
-             {
 
-                 if (interVal < 0.0f)
 
-                 {
 
-                     
 
-                     interVal = 0.8f;
 
-                     for (int i = 0; i < staticImportants.Count; i++)
 
-                     {
 
-                         if (Vector3.Distance(CameraManager.instance.mainCamera.transform.position, staticImportants[i].foucusPos) < 3200)
 
-                         {
 
-                             staticImportants[i].Show();
 
-                         }
 
-                         else
 
-                         {
 
- //Debug.Log(staticImportants[i].name);
 
-                             staticImportants[i].Hide();
 
-                         }
 
-                     }
 
-                     if (hetiGaoLiang != null)
 
-                     {
 
-                         if (CameraManager.instance.mainCamera.transform.position.y > 3000)
 
-                         {
 
-                             hetiGaoLiang.gameObject.SetActive(true);
 
-                         }
 
-                         else
 
-                         {
 
-                             hetiGaoLiang.gameObject.SetActive(false);
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 for (int i = 0; i < staticImportants.Count; i++)
 
-                 {
 
-                     staticImportants[i].Show();
 
-                 }
 
-             }
 
-         }
 
-         
 
-     }
 
- }
 
 
  |