From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/OnlyOneEdgeModifier.cs | 57 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 GameCode/OnlyOneEdgeModifier.cs (limited to 'GameCode/OnlyOneEdgeModifier.cs') diff --git a/GameCode/OnlyOneEdgeModifier.cs b/GameCode/OnlyOneEdgeModifier.cs new file mode 100644 index 0000000..080423c --- /dev/null +++ b/GameCode/OnlyOneEdgeModifier.cs @@ -0,0 +1,57 @@ +using UnityEngine; +using UnityEngine.UI.ProceduralImage; + +[ModifierID("Only One Edge")] +public class OnlyOneEdgeModifier : ProceduralImageModifier +{ + public enum ProceduralImageEdge + { + Top, + Bottom, + Left, + Right + } + + [SerializeField] + private float radius; + + [SerializeField] + private ProceduralImageEdge side; + + public float Radius + { + get + { + return radius; + } + set + { + radius = value; + base._Graphic.SetVerticesDirty(); + } + } + + public ProceduralImageEdge Side + { + get + { + return side; + } + set + { + side = value; + } + } + + public override Vector4 CalculateRadius(Rect imageRect) + { + return side switch + { + ProceduralImageEdge.Top => new Vector4(radius, radius, 0f, 0f), + ProceduralImageEdge.Right => new Vector4(0f, radius, radius, 0f), + ProceduralImageEdge.Bottom => new Vector4(0f, 0f, radius, radius), + ProceduralImageEdge.Left => new Vector4(radius, 0f, 0f, radius), + _ => new Vector4(0f, 0f, 0f, 0f), + }; + } +} -- cgit v1.1-26-g67d0