using Newtonsoft.Json; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public class StaticLod : MonoBehaviour { public List staticImportants; public Dictionary staticImportantsDic; public static StaticLod instance; public StaticImportant currentStatic; float interVal = 0; // Start is called before the first frame update void Awake() { instance = this; staticImportantsDic = new Dictionary(); staticImportants = new List(); for (int i = 0; i < this.transform.childCount; i++) { StaticImportant si = this.transform.GetChild(i).GetComponent(); if (si != null) { staticImportants.Add(si); staticImportantsDic.Add(si.gameObject.name, si); } } } public void OnFoucusStatic(int i) { currentStatic = staticImportants[i]; Debug.Log("11111111111111111:" + currentStatic); currentStatic.ForceSacnMode(); } public int OnFoucusStatic(StaticImportant si) { currentStatic = si; currentStatic.ForceSacnMode(); return staticImportants.IndexOf(si); } public void OnFoucusStatic(string name_pri) { 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 (interVal < 0.0f) { interVal = 0.2f; for (int i = 0; i < staticImportants.Count; i++) { if (Vector3.Distance(CameraManager.instance.mainCamera.transform.position, staticImportants[i].foucusPos) < 3200) { staticImportants[i].Show(); } else { staticImportants[i].Hide(); } } } } }