Skip to content

Commit 0b7529b

Browse files
committed
Fix for materials made null in HDRP backport
1 parent 5133cb1 commit 0b7529b

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

Assets/MapEditor/Managers/AssetManager.cs

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -377,13 +377,37 @@ public static IEnumerator SetMaterials(int materialID)
377377
switch (lineSplit[0])
378378
{
379379
case "Standard":
380-
EditorCoroutineUtility.StartCoroutineOwnerless(UpdateShader(LoadAsset<Material>(lineSplit[1]), std));
380+
Material matStd = LoadAsset<Material>(lineSplit[1]);
381+
if (matStd == null)
382+
{
383+
Debug.LogWarning(lineSplit[1] + " is not a valid asset.");
384+
break;
385+
}
386+
EditorCoroutineUtility.StartCoroutineOwnerless(UpdateShader(matStd, std));
381387
break;
388+
382389
case "Specular":
383-
EditorCoroutineUtility.StartCoroutineOwnerless(UpdateShader(LoadAsset<Material>(lineSplit[1]), spc));
390+
Material matSpc= LoadAsset<Material>(lineSplit[1]);
391+
if (matSpc == null)
392+
{
393+
Debug.LogWarning(lineSplit[1] + " is not a valid asset.");
394+
break;
395+
}
396+
EditorCoroutineUtility.StartCoroutineOwnerless(UpdateShader(matSpc, spc));
384397
break;
398+
385399
case "Foliage":
386-
LoadAsset<Material>(lineSplit[1]).DisableKeyword("_TINTENABLED_ON");
400+
Material mat = LoadAsset<Material>(lineSplit[1]);
401+
if(mat == null)
402+
{
403+
Debug.LogWarning(lineSplit[1] + " is not a valid asset.");
404+
break;
405+
}
406+
mat.DisableKeyword("_TINTENABLED_ON");
407+
break;
408+
409+
default:
410+
Debug.LogWarning(lineSplit[0] + " is not a valid shader.");
387411
break;
388412
}
389413
yield return null;
@@ -395,9 +419,6 @@ public static IEnumerator SetMaterials(int materialID)
395419

396420
public static IEnumerator UpdateShader(Material mat, Shader shader)
397421
{
398-
if (mat == null)
399-
yield break;
400-
401422
mat.shader = shader;
402423
yield return null;
403424
switch (mat.GetFloat("_Mode"))
@@ -415,6 +436,7 @@ public static IEnumerator UpdateShader(Material mat, Shader shader)
415436
SetKeyword(mat, "_SPECGLOSSMAP", mat.GetTexture("_SpecGlossMap"));
416437
mat.renderQueue = -1;
417438
break;
439+
418440
case 1f:
419441
mat.SetOverrideTag("RenderType", "TransparentCutout");
420442
mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
@@ -426,6 +448,7 @@ public static IEnumerator UpdateShader(Material mat, Shader shader)
426448
mat.EnableKeyword("_NORMALMAP");
427449
mat.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest;
428450
break;
451+
429452
case 2f:
430453
mat.SetOverrideTag("RenderType", "Transparent");
431454
mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
@@ -437,6 +460,7 @@ public static IEnumerator UpdateShader(Material mat, Shader shader)
437460
mat.EnableKeyword("_NORMALMAP");
438461
mat.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent;
439462
break;
463+
440464
case 3f:
441465
mat.SetOverrideTag("RenderType", "Transparent");
442466
mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);

0 commit comments

Comments
 (0)