-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathGradientTexture.cs
67 lines (59 loc) · 1.64 KB
/
GradientTexture.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using UnityEngine;
namespace Gilzoide.GradientRect
{
[RequireComponent(typeof(CanvasRenderer))]
public class GradientTexture : GradientRect
{
[Header("Texture")]
[SerializeField] protected Texture _texture;
[SerializeField] protected Rect _UVRect = new Rect(0, 0, 1, 1);
/// <summary>Texture used to draw Image.</summary>
public Texture Texture
{
get => _texture;
set
{
if (_texture == value)
{
return;
}
_texture = value;
SetVerticesDirty();
SetMaterialDirty();
}
}
/// <summary>UV rectangle used to sample <see cref="Texture"/>.</summary>
public Rect UVRect
{
get => _UVRect;
set
{
if (_UVRect == value)
{
return;
}
_UVRect = value;
SetVerticesDirty();
}
}
public override Texture mainTexture
{
get
{
if (_texture == null)
{
if (material != null && material.mainTexture != null)
{
return material.mainTexture;
}
return s_WhiteTexture;
}
return _texture;
}
}
protected override Vector2 GetUVForNormalizedPosition(Vector2 position)
{
return Rect.NormalizedToPoint(_UVRect, position);
}
}
}