@@ -137,6 +137,8 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
137
137
if ( existingLodGroup != null )
138
138
throw new System . InvalidOperationException ( "The game object already appears to have a LOD Group. Please remove it first." ) ;
139
139
140
+ MeshSimplifier . ValidateOptions ( simplificationOptions ) ;
141
+
140
142
saveAssetsPath = ValidateSaveAssetsPath ( saveAssetsPath ) ;
141
143
142
144
var lodParentGameObject = new GameObject ( LODParentGameObjectName ) ;
@@ -195,7 +197,7 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
195
197
for ( int rendererIndex = 0 ; rendererIndex < staticRenderers . Length ; rendererIndex ++ )
196
198
{
197
199
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 ) ;
199
201
levelRenderers . Add ( levelRenderer ) ;
200
202
}
201
203
}
@@ -205,7 +207,7 @@ public static LODGroup GenerateLODs(GameObject gameObject, LODLevel[] levels, bo
205
207
for ( int rendererIndex = 0 ; rendererIndex < skinnedRenderers . Length ; rendererIndex ++ )
206
208
{
207
209
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 ) ;
209
211
levelRenderers . Add ( levelRenderer ) ;
210
212
}
211
213
}
@@ -454,7 +456,7 @@ private static void ParentAndOffsetTransform(Transform transform, Transform pare
454
456
transform . SetParent ( parentTransform , true ) ;
455
457
}
456
458
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 )
458
460
{
459
461
var mesh = renderer . mesh ;
460
462
@@ -476,16 +478,16 @@ private static Renderer CreateLevelRenderer(GameObject gameObject, int levelInde
476
478
if ( renderer . isStatic )
477
479
{
478
480
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 ) ;
480
482
}
481
483
else
482
484
{
483
485
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 ) ;
485
487
}
486
488
}
487
489
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 )
489
491
{
490
492
var levelGameObject = new GameObject ( name , typeof ( MeshFilter ) , typeof ( MeshRenderer ) ) ;
491
493
var levelTransform = levelGameObject . transform ;
@@ -503,11 +505,11 @@ private static MeshRenderer CreateStaticLevelRenderer(string name, Transform par
503
505
504
506
var meshRenderer = levelGameObject . GetComponent < MeshRenderer > ( ) ;
505
507
meshRenderer . sharedMaterials = materials ;
506
- SetupLevelRenderer ( meshRenderer , ref level ) ;
508
+ SetupLevelRenderer ( meshRenderer , level ) ;
507
509
return meshRenderer ;
508
510
}
509
511
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 )
511
513
{
512
514
var levelGameObject = new GameObject ( name , typeof ( SkinnedMeshRenderer ) ) ;
513
515
var levelTransform = levelGameObject . transform ;
@@ -525,7 +527,7 @@ private static SkinnedMeshRenderer CreateSkinnedLevelRenderer(string name, Trans
525
527
skinnedMeshRenderer . sharedMaterials = materials ;
526
528
skinnedMeshRenderer . rootBone = rootBone ;
527
529
skinnedMeshRenderer . bones = bones ;
528
- SetupLevelRenderer ( skinnedMeshRenderer , ref level ) ;
530
+ SetupLevelRenderer ( skinnedMeshRenderer , level ) ;
529
531
return skinnedMeshRenderer ;
530
532
}
531
533
@@ -553,7 +555,7 @@ private static Transform FindBestRootBone(Transform transform, SkinnedMeshRender
553
555
return bestBone ;
554
556
}
555
557
556
- private static void SetupLevelRenderer ( Renderer renderer , ref LODLevel level )
558
+ private static void SetupLevelRenderer ( Renderer renderer , in LODLevel level )
557
559
{
558
560
renderer . shadowCastingMode = level . ShadowCastingMode ;
559
561
renderer . receiveShadows = level . ReceiveShadows ;
@@ -605,7 +607,7 @@ private static void CollectChildRenderersForLOD(Transform transform, List<Render
605
607
}
606
608
}
607
609
608
- private static Mesh SimplifyMesh ( Mesh mesh , float quality , SimplificationOptions options )
610
+ private static Mesh SimplifyMesh ( Mesh mesh , float quality , in SimplificationOptions options )
609
611
{
610
612
var meshSimplifier = new MeshSimplifier ( ) ;
611
613
meshSimplifier . SimplificationOptions = options ;
0 commit comments