using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.Pool; namespace BITKit.OpenWorld { public sealed class BuildingChunkObject : MonoBehaviour { [SerializeField] private ChunkBehaviour chunkBehaviour; [SerializeField] private Renderer[] interiorRenderers; [SerializeField] private Optional useRoot; private void Start() { chunkBehaviour.OnLodChangedEvent += OnLodChanged; if(useRoot.Allow is false)return; var renderers = ListPool.Get(); renderers.AddRange(interiorRenderers); renderers.AddRange(useRoot.Value.GetComponentsInChildren()); interiorRenderers = renderers.Distinct().ToArray(); renderers.Clear(); ListPool.Release(renderers); } private void OnLodChanged(int oldLod, int newLod) { var show = newLod is 0; foreach (var x in interiorRenderers) { x.enabled = show; } } } }