void ProcessCommon(GameObject go, bool genLightmapUV, int lod) { MeshFilter[] mfs = go.GetComponentsInChildren <MeshFilter>(); foreach (var mf in mfs) { if (mf && mf.sharedMesh) { MeshTool mt = new MeshTool(mf.sharedMesh); var normalMappedLogo = go.name.StartsWith("knob") && !go.name.EndsWith("C"); if (lod == 0) { mt.GenerateChamfer(1.0f / mf.transform.localScale.x); } if (normalMappedLogo) { mt.GenerateKnobNormalMapUVs(); } else { mt.ClearNormalMapUVs(); } mt.ApplyTo(mf.sharedMesh, normalMappedLogo, genLightmapUV); EditorUtility.SetDirty(mf.sharedMesh); System.GC.Collect(); } } }
void ProcessCommon(GameObject go, bool genLightmapUV, int lod) { MeshFilter[] mfs = go.GetComponentsInChildren <MeshFilter>(); foreach (var mf in mfs) { if (mf && mf.sharedMesh) { MeshTool mt = new MeshTool(mf.sharedMesh); var normalMappedLogo = go.name.StartsWith("knob") && !go.name.EndsWith("C"); // Generate lowest possible LOD. var bounds = mf.sharedMesh.bounds; var knob = go.name.StartsWith("knob"); var hollow = knob ? go.name.EndsWith("C") : go.name.StartsWith("tube"); PartUtility.CreateCommonPartLod2(go.name, bounds.size.y, bounds.extents.x, knob, hollow, bounds.extents.x - 0.08f, genLightmapUV); if (lod == 0) { mt.GenerateChamfer(1.0f / mf.transform.localScale.x); } if (normalMappedLogo) { mt.GenerateKnobNormalMapUVs(); } else { mt.ClearNormalMapUVs(); } mt.ApplyTo(mf.sharedMesh, normalMappedLogo, genLightmapUV); EditorUtility.SetDirty(mf.sharedMesh); System.GC.Collect(); } } }