HeavenStudioPlus/Assets/Plugins/com.unity.uiextensions/Runtime/Scripts/Effects/ShaderEffects/UIScreenEffect.cs

41 lines
1.2 KiB
C#
Raw Normal View History

2022-01-06 00:11:33 +00:00
/// Credit 00christian00
/// Sourced from - http://forum.unity3d.com/threads/any-way-to-show-part-of-an-image-without-using-mask.360085/#post-2332030
namespace UnityEngine.UI.Extensions
{
[AddComponentMenu("UI/Effects/Extensions/UIScreenEffect")]
[ExecuteInEditMode]
[RequireComponent(typeof(RectTransform))]
public class UIScreenEffect : MonoBehaviour
{
MaskableGraphic mGraphic;
// Use this for initialization
void Start()
{
SetMaterial();
}
public void SetMaterial()
{
mGraphic = this.GetComponent<MaskableGraphic>();
if (mGraphic != null)
{
if (mGraphic.material == null || mGraphic.material.name == "Default UI Material")
{
//Applying default material with UI Image Crop shader
mGraphic.material = new Material(ShaderLibrary.GetShaderInstance("UI Extensions/UIScreen"));
}
}
else
{
Debug.LogError("Please attach component to a Graphical UI component");
}
}
public void OnValidate()
{
SetMaterial();
}
}
}