@@ -137,6 +137,8 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
137137 if ( existingLodGroup != null )
138138 throw new System . InvalidOperationException ( "The game object already appears to have a LOD Group. Please remove it first." ) ;
139139
140+ MeshSimplifier . ValidateOptions ( simplificationOptions ) ;
141+
140142 saveAssetsPath = ValidateSaveAssetsPath ( saveAssetsPath ) ;
141143
142144 var lodParentGameObject = new GameObject ( LODParentGameObjectName ) ;
@@ -195,7 +197,7 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
195197 for ( int rendererIndex = 0 ; rendererIndex < staticRenderers . Length ; rendererIndex ++ )
196198 {
197199 var renderer = staticRenderers [ rendererIndex ] ;
198- var levelRenderer = CreateLevelRenderer ( gameObject , levelIndex , ref level , levelTransform , rendererIndex , renderer , ref simplificationOptions , saveAssetsPath ) ;
200+ var levelRenderer = CreateLevelRenderer ( gameObject , levelIndex , level , levelTransform , rendererIndex , renderer , simplificationOptions , saveAssetsPath ) ;
199201 levelRenderers . Add ( levelRenderer ) ;
200202 }
201203 }
@@ -205,7 +207,7 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
205207 for ( int rendererIndex = 0 ; rendererIndex < skinnedRenderers . Length ; rendererIndex ++ )
206208 {
207209 var renderer = skinnedRenderers [ rendererIndex ] ;
208- var levelRenderer = CreateLevelRenderer ( gameObject , levelIndex , ref level , levelTransform , rendererIndex , renderer , ref simplificationOptions , saveAssetsPath ) ;
210+ var levelRenderer = CreateLevelRenderer ( gameObject , levelIndex , level , levelTransform , rendererIndex , renderer , simplificationOptions , saveAssetsPath ) ;
209211 levelRenderers . Add ( levelRenderer ) ;
210212 }
211213 }
@@ -454,7 +456,7 @@ private static void ParentAndOffsetTransform(Transform transform, Transform pare
454456 transform . SetParent ( parentTransform , true ) ;
455457 }
456458
457- private static Renderer CreateLevelRenderer ( GameObject gameObject , int levelIndex , ref LODLevel level , Transform levelTransform , int rendererIndex , RendererInfo renderer , ref SimplificationOptions simplificationOptions , string saveAssetsPath )
459+ private static Renderer CreateLevelRenderer ( GameObject gameObject , int levelIndex , in LODLevel level , Transform levelTransform , int rendererIndex , in RendererInfo renderer , in SimplificationOptions simplificationOptions , string saveAssetsPath )
458460 {
459461 var mesh = renderer . mesh ;
460462
@@ -476,16 +478,16 @@ private static Renderer CreateLevelRenderer(GameObject gameObject, int levelInde
476478 if ( renderer . isStatic )
477479 {
478480 string rendererName = string . Format ( "{0:000}_static_{1}" , rendererIndex , renderer . name ) ;
479- return CreateStaticLevelRenderer ( rendererName , levelTransform , renderer . transform , mesh , renderer . materials , ref level ) ;
481+ return CreateStaticLevelRenderer ( rendererName , levelTransform , renderer . transform , mesh , renderer . materials , level ) ;
480482 }
481483 else
482484 {
483485 string rendererName = string . Format ( "{0:000}_skinned_{1}" , rendererIndex , renderer . name ) ;
484- return CreateSkinnedLevelRenderer ( rendererName , levelTransform , renderer . transform , mesh , renderer . materials , renderer . rootBone , renderer . bones , ref level ) ;
486+ return CreateSkinnedLevelRenderer ( rendererName , levelTransform , renderer . transform , mesh , renderer . materials , renderer . rootBone , renderer . bones , level ) ;
485487 }
486488 }
487489
488- private static MeshRenderer CreateStaticLevelRenderer ( string name , Transform parentTransform , Transform originalTransform , Mesh mesh , Material [ ] materials , ref LODLevel level )
490+ private static MeshRenderer CreateStaticLevelRenderer ( string name , Transform parentTransform , Transform originalTransform , Mesh mesh , Material [ ] materials , in LODLevel level )
489491 {
490492 var levelGameObject = new GameObject ( name , typeof ( MeshFilter ) , typeof ( MeshRenderer ) ) ;
491493 var levelTransform = levelGameObject . transform ;
@@ -503,11 +505,11 @@ private static MeshRenderer CreateStaticLevelRenderer(string name, Transform par
503505
504506 var meshRenderer = levelGameObject . GetComponent < MeshRenderer > ( ) ;
505507 meshRenderer . sharedMaterials = materials ;
506- SetupLevelRenderer ( meshRenderer , ref level ) ;
508+ SetupLevelRenderer ( meshRenderer , level ) ;
507509 return meshRenderer ;
508510 }
509511
510- private static SkinnedMeshRenderer CreateSkinnedLevelRenderer ( string name , Transform parentTransform , Transform originalTransform , Mesh mesh , Material [ ] materials , Transform rootBone , Transform [ ] bones , ref LODLevel level )
512+ private static SkinnedMeshRenderer CreateSkinnedLevelRenderer ( string name , Transform parentTransform , Transform originalTransform , Mesh mesh , Material [ ] materials , Transform rootBone , Transform [ ] bones , in LODLevel level )
511513 {
512514 var levelGameObject = new GameObject ( name , typeof ( SkinnedMeshRenderer ) ) ;
513515 var levelTransform = levelGameObject . transform ;
@@ -525,7 +527,7 @@ private static SkinnedMeshRenderer CreateSkinnedLevelRenderer(string name, Trans
525527 skinnedMeshRenderer . sharedMaterials = materials ;
526528 skinnedMeshRenderer . rootBone = rootBone ;
527529 skinnedMeshRenderer . bones = bones ;
528- SetupLevelRenderer ( skinnedMeshRenderer , ref level ) ;
530+ SetupLevelRenderer ( skinnedMeshRenderer , level ) ;
529531 return skinnedMeshRenderer ;
530532 }
531533
@@ -553,7 +555,7 @@ private static Transform FindBestRootBone(Transform transform, SkinnedMeshRender
553555 return bestBone ;
554556 }
555557
556- private static void SetupLevelRenderer ( Renderer renderer , ref LODLevel level )
558+ private static void SetupLevelRenderer ( Renderer renderer , in LODLevel level )
557559 {
558560 renderer . shadowCastingMode = level . ShadowCastingMode ;
559561 renderer . receiveShadows = level . ReceiveShadows ;
@@ -605,7 +607,7 @@ private static void CollectChildRenderersForLOD(Transform transform, List<Render
605607 }
606608 }
607609
608- private static Mesh SimplifyMesh ( Mesh mesh , float quality , SimplificationOptions options )
610+ private static Mesh SimplifyMesh ( Mesh mesh , float quality , in SimplificationOptions options )
609611 {
610612 var meshSimplifier = new MeshSimplifier ( ) ;
611613 meshSimplifier . SimplificationOptions = options ;
0 commit comments