using System.Collections.Generic; using UnityEngine; public class NoSeeLongDMob : MyCoroutine { List list_Renderer = new List(); float dist = 80f; private void Start() { list_Renderer.AddRange(GetComponentsInChildren()); Set_Repeat_for1sec(() => { if (Camera.main == null) return; var pos = Camera.main.transform.position; for (int i = 0; i < list_Renderer.Count; i++) { if (list_Renderer[i] == null) continue; // 파괴된 렌더러 방어 (Unity 6 MissingReferenceException · 2026-09-05 #744) if (list_Renderer[i].enabled && Vector3.Distance(pos, list_Renderer[i].transform.position) > dist) list_Renderer[i].enabled = false; else if (!list_Renderer[i].enabled && Vector3.Distance(pos, list_Renderer[i].transform.position) <= dist) list_Renderer[i].enabled = true; } }); } public bool IsNoSeeMob() { // Unity 6: 씬 전환 중 Actor.OnDestroy → Get_EnemyActors → 이 함수가 파괴된 SkinnedMeshRenderer 를 읽어 MissingReferenceException (2026-09-05 #744 실측) if (list_Renderer.Count == 0 || list_Renderer[0] == null) return false; return !list_Renderer[0].enabled; } }