private void DoAfterSetAction(AfterSetAction action) { switch (action) { case AfterSetAction.Clear: ClearAllKeywords(); break; case AfterSetAction.CopyMaterial: currMaterial.CopyPropertiesFromMaterial(prevMaterial); break; } }
private void SetMaterial(AfterSetAction action) { Shader allIn1Shader = Resources.Load("AllIn1SpriteShader", typeof(Shader)) as Shader; if (!Application.isPlaying && Application.isEditor && allIn1Shader != null) { bool rendererExists = false; SpriteRenderer sr = GetComponent <SpriteRenderer>(); if (sr != null) { rendererExists = true; prevMaterial = new Material(GetComponent <Renderer>().sharedMaterial); currMaterial = new Material(allIn1Shader); GetComponent <Renderer>().sharedMaterial = currMaterial; GetComponent <Renderer>().sharedMaterial.hideFlags = HideFlags.None; matAssigned = true; DoAfterSetAction(action); } else { Image img = GetComponent <Image>(); if (img != null) { rendererExists = true; prevMaterial = new Material(img.material); currMaterial = new Material(allIn1Shader); img.material = currMaterial; img.material.hideFlags = HideFlags.None; matAssigned = true; DoAfterSetAction(action); } } if (!rendererExists) { MissingRenderer(); return; } else { SetSceneDirty(); } } else if (allIn1Shader == null) { //Debug.LogError("Make sure the AllIn1SpriteShader file is inside the Resource folder!"); } }
private void SetMaterial(AfterSetAction action, bool getShaderTypeFromPrefs, string shaderName) { Shader allIn1Shader = Resources.Load(shaderName, typeof(Shader)) as Shader; if (getShaderTypeFromPrefs) { int shaderVariant = PlayerPrefs.GetInt("allIn1DefaultShader"); if (shaderVariant == 1) { allIn1Shader = Resources.Load("AllIn1SpriteShaderScaledTime", typeof(Shader)) as Shader; } else if (shaderVariant == 2) { allIn1Shader = Resources.Load("AllIn1SpriteShaderUiMask", typeof(Shader)) as Shader; } else if (shaderVariant == 3) { allIn1Shader = Resources.Load("AllIn1Urp2dRenderer", typeof(Shader)) as Shader; } } if (!Application.isPlaying && Application.isEditor && allIn1Shader != null) { bool rendererExists = false; Renderer sr = GetComponent <Renderer>(); if (sr != null) { rendererExists = true; prevMaterial = new Material(GetComponent <Renderer>().sharedMaterial); currMaterial = new Material(allIn1Shader); GetComponent <Renderer>().sharedMaterial = currMaterial; GetComponent <Renderer>().sharedMaterial.hideFlags = HideFlags.None; matAssigned = true; DoAfterSetAction(action); } else { Image img = GetComponent <Image>(); if (img != null) { rendererExists = true; prevMaterial = new Material(img.material); currMaterial = new Material(allIn1Shader); img.material = currMaterial; img.material.hideFlags = HideFlags.None; matAssigned = true; DoAfterSetAction(action); } } if (!rendererExists) { MissingRenderer(); return; } else { SetSceneDirty(); } } else if (allIn1Shader == null) { Debug.LogError("Make sure the AllIn1SpriteShader shader variants are inside the Resource folder!"); } }