[MenuItem("Tools/创建LOD")]
public static void CreateLOD()
{
GameObject[] selObjs = Selection.gameObjects;
foreach (GameObject a in selObjs)
{
if (a.transform.childCount != 0)
{
Transform[] b = a.GetComponentsInChildren<Transform>();
foreach (var item in b)
{
if (item.childCount != 0) {
GameObject o = item.transform.GetChild(0).gameObject;
LODGroup lodG = o.GetComponent<LODGroup>();
if (lodG == null)
{
lodG = o.AddComponent<LODGroup>();
}
Renderer renderer = o.GetComponent<Renderer>();
Renderer[] renderers = new Renderer[]
{
renderer
};
LOD[] lods = new LOD[]
{
new LOD(0.01f, renderers)
};
lodG.SetLODs(lods);
}
else
{
LODGroup lodG = item.GetComponent<LODGroup>();
if (lodG == null)
{
lodG = item.gameObject.AddComponent<LODGroup>();
}
Renderer renderer = item.GetComponent<Renderer>();
Renderer[] renderers = new Renderer[]
{
renderer
};
LOD[] lods = new LOD[]
{
new LOD(0.01f, renderers)
};
lodG.SetLODs(lods);
}
}
}
else {
LODGroup lodG = a.GetComponent<LODGroup>();
if (lodG == null)
{
lodG = a.AddComponent<LODGroup>();
}
Renderer renderer = a.GetComponent<Renderer>();
Renderer[] renderers = new Renderer[]
{
renderer
};
LOD[] lods = new LOD[]
{
new LOD(0.01f, renderers)
};
lodG.SetLODs(lods);
}
}
}
[MenuItem("Tools/移除LOD")]
public static void MoveLOD() {
GameObject[] selObjs = Selection.gameObjects;
foreach (GameObject a in selObjs)
{
if (a.transform.childCount != 0)
{
Transform[] b = a.GetComponentsInChildren<Transform>();
foreach (var item in b)
{
if (item.childCount != 0)
{
GameObject o = item.transform.GetChild(0).gameObject;
LODGroup lodG = o.GetComponent<LODGroup>();
if (lodG != null)
{
DestroyImmediate(lodG);
}
}
else
{
LODGroup lodG = item.GetComponent<LODGroup>();
if (lodG != null)
{
DestroyImmediate(item.GetComponent<LODGroup>());
}
}
}
}
else
{
LODGroup lodG = a.GetComponent<LODGroup>();
if (lodG != null)
{
DestroyImmediate(a.GetComponent<LODGroup>());
}
}
}
}