using System; using System.Collections; using System.Collections.Generic; using System.Linq; using BITKit; using UnityEngine; namespace Net.Project.B.WorldNode { public class UnityEnvironmentController : MonoBehaviour { [SerializeField] private GameObject[] staticGameObjects; private void OnEnable() { if(Application.isEditor)return; Execute(); Destroy(this); } private void Start() { Execute(); Destroy(this); } [ContextMenu("Build Index")] public void Rebuild() { staticGameObjects = GetComponentsInChildren().Where(x=>x.gameObject.isStatic).Select(x=>x.gameObject).ToArray(); Debug.Log($"已获取到{staticGameObjects.Length}个物体"); } private void Execute() { var lost = 0; foreach (var staticGameObject in staticGameObjects) { if (staticGameObject) { staticGameObject.isStatic = true; continue; } lost++; } Debug.Log($"已设置{staticGameObjects.Length}个物体为isStatic,丢失了:{lost}个"); } } }