2019년 5월 2일 목요일

사각형 그리기

유용합니다
ex) 스타크레프트 캐릭터선택 사각형 그리기


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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#if Unity_EDITOR
 
using UnityEditor;
 
#endif
 
 
 
using UnityEngine;
 
 
 
public static class DrawRectUtils{
 
 
    static Texture2D _whiteTexture;
 
 
    public static Texture2D WhiteTexture
    {

        get
        {
            if (_whiteTexture == null)
            {
 
                _whiteTexture = new Texture2D(11);
 
                _whiteTexture.SetPixel(00, Color.white);
 
                _whiteTexture.Apply();
            }
 
 
 
            return _whiteTexture;
 
        }
 
    }
 
 
 
    public static void DrawScreenRect(Rect rect, Color color)
 
    {
 
        GUI.color = color;
 
        GUI.DrawTexture(rect, WhiteTexture);
 
        GUI.color = Color.white;
 
    }
 
 
 
    public static void DrawScreenRectBorder(Rect rect, float thickness, Color color)
 
    {
 
        //top
 
        DrawRectUtils.DrawScreenRect(new Rect(rect.xMin, rect.yMin, rect.width, thickness), color);
 
        //left
 
        DrawRectUtils.DrawScreenRect(new Rect(rect.xMin, rect.yMin, thickness, rect.height), color);
 
 
 
        //right
 
        DrawRectUtils.DrawScreenRect(new Rect(rect.xMax - thickness, rect.yMin, thickness, rect.height), color);
 
 
 
        //bottom
 
        DrawRectUtils.DrawScreenRect(new Rect(rect.xMin, rect.yMax - thickness, rect.width, thickness), color);
 
    }
 
 
 
    public static Rect GetScreenRect(Vector3 screenPosition1, Vector3 screenPosition2)
 
    {
 
        screenPosition1.y = Screen.height - screenPosition1.y;
 
        screenPosition2.y = Screen.height - screenPosition2.y;
 
 
 
        var topLeft = Vector3.Min(screenPosition1, screenPosition2);
 
        var bottomRight = Vector3.Max(screenPosition1, screenPosition2);
 
 
 
        return Rect.MinMaxRect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y);
 
    }
cs

댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...