@@ -12,6 +12,8 @@ public class DecimaterMain : EditorWindow
1212
1313 private Material previewMaterial ;
1414 private Material wireframeMaterial ;
15+ private Shader previewShader ;
16+ private Shader wireframeShader ;
1517
1618 [ MenuItem ( "Decimater/MeshDecimater" ) ]
1719 public static void ShowWindow ( )
@@ -21,13 +23,20 @@ public static void ShowWindow()
2123
2224 private void OnEnable ( )
2325 {
26+ LoadShaders ( ) ;
2427 previewMaterial = CreatePreviewMaterial ( ) ;
2528 wireframeMaterial = CreateWireframeMaterial ( ) ;
2629
2730 meshPreviewer = new MeshPreviewer ( previewMaterial , wireframeMaterial ) ;
2831 meshInfoDisplay = new MeshInfoDisplay ( ) ;
2932 }
3033
34+ private void LoadShaders ( )
35+ {
36+ previewShader = Shader . Find ( "Standard" ) ;
37+ wireframeShader = Shader . Find ( "Refiaa/Wireframe" ) ;
38+ }
39+
3140 private void OnSelectionChange ( )
3241 {
3342 UpdateSelection ( Selection . activeGameObject ) ;
@@ -171,10 +180,16 @@ private void EnableReadWrite(Mesh mesh)
171180 AssetDatabase . ImportAsset ( path , ImportAssetOptions . ForceUpdate ) ;
172181 }
173182 }
183+
174184 private Material CreatePreviewMaterial ( )
175185 {
176- Shader shader = Shader . Find ( "Standard" ) ;
177- Material material = new Material ( shader )
186+ if ( previewShader == null )
187+ {
188+ Debug . LogError ( "Preview shader not found!" ) ;
189+ return null ;
190+ }
191+
192+ Material material = new Material ( previewShader )
178193 {
179194 name = "Preview Material"
180195 } ;
@@ -191,7 +206,12 @@ private Material CreatePreviewMaterial()
191206
192207 private Material CreateWireframeMaterial ( )
193208 {
194- Shader wireframeShader = Shader . Find ( "Refiaa/Wireframe" ) ;
209+ if ( wireframeShader == null )
210+ {
211+ Debug . LogError ( "Wireframe shader not found!" ) ;
212+ return null ;
213+ }
214+
195215 return new Material ( wireframeShader )
196216 {
197217 name = "Wireframe Material"
0 commit comments