using UnityEngine; public static class Optimizer { public static void ChangeSceneObjState(bool isShow) { Transform temp_cont = LuaFramework.LuaHelper.GetPanelManager().GetParent("SceneObjContainer"); Animator[] temp_child = temp_cont.GetComponentsInChildren(); for (int i = 0; i < temp_child.Length; i++) { temp_child[i].enabled = isShow; } SkinnedMeshRenderer[] temp_mesh_child = temp_cont.GetComponentsInChildren(); int layer = isShow ? LayerMask.NameToLayer("Default") : LayerMask.NameToLayer("Hide"); for (int i = 0; i < temp_mesh_child.Length; i++) { temp_mesh_child[i].gameObject.layer = layer; } } public static void ChangeLayer(Transform trans, string targetLayer) { if (LayerMask.NameToLayer(targetLayer) == -1) { Debug.Log("Layer中不存在,请手动添加LayerName"); return; }         trans.gameObject.layer = LayerMask.NameToLayer(targetLayer); foreach (Transform child in trans) { ChangeLayer(child, targetLayer); // Debug.Log(child.name + "子对象Layer更改成功!"); } } public static void CopyOnPC(string input) { TextEditor t = new TextEditor(); t.text = input; t.OnFocus(); t.Copy(); } public static MaterialPropertyBlock CreateMatPropertyBlock() { MaterialPropertyBlock block = new MaterialPropertyBlock(); return block; } public static MaterialPropertyBlock[] CreateMatPropertyBlocks(int len) { MaterialPropertyBlock[] blocks = new MaterialPropertyBlock[len]; for (int i = 0; i < len; i++) { blocks[i] = new MaterialPropertyBlock(); } return blocks; } public static void SetShaderLodValue(int lod) { Shader.globalMaximumLOD = lod; } }