liuzhiwei
2020-12-26 56d95fa59a9f6dc12d0fc0723ea449e5b317f994
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using UnityEngine;
using UnityEngine.EventSystems;
using KTGMGemClient;
using UnityEngine.UI;
 
public class ImageWood : GuideImageBase, IPointerEnterHandler, IPointerExitHandler, IDragHandler, IBeginDragHandler, IEndDragHandler
{
    ImageWood2 imageWood2;
 
    public void OnPointerEnter(PointerEventData eventData)
    {
        if (imageWood2.IsDraging)
        {
            imageWood2.SetTarget(this.gameObject);
        }
    }
 
    public void OnPointerExit(PointerEventData eventData)
    {
        if (imageWood2.IsDraging)
        {
            imageWood2.SetTarget(null);
        }
    }
 
    GameObject level1, level2;//等级标志
    bool canDrag;//是否可以推拽
    RectTransform rectTransform;//自身Rect
 
    public RectTransform GetRect
    {
        get
        {
            return rectTransform;
        }
    }
    GameObject target;//推拽到塔位置的标识
    Image tmpImage;//自身图片
    Vector2 pos;//初始坐标
    GameObject levelImage;
    //Vector3 startP;
    public Vector2 GetStartP
    {
        get
        {
            return pos;
        }
    }
 
    // Start is called before the first frame update
    private void Awake()
    {
 
        //startP = transform.position;
        rectTransform = GetComponent<RectTransform>();
 
        imageWood2 = transform.parent.Find("Image_Wood2").GetComponent<ImageWood2>();
        level1 = transform.Find("Image_1").gameObject;
        level2 = transform.Find("Image_2").gameObject;
        level2.SetActive(false);
 
        tmpImage = GetComponent<Image>();
        rectTransform = GetComponent<RectTransform>();
        pos = rectTransform.anchoredPosition;
        levelImage = transform.Find("Image_2").gameObject;
    }
 
    //合成宝石
    public void Add()
    {
        Debug.Log("合成了宝石");
        level1.SetActive(false);
        level2.SetActive(true);
        canDrag = true;
        GuideCtrl.Ins.AddCard();
        //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.AddCard);
        EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.GuidePlayUpgradeEffect, transform.position);
 
    }
 
    public override void SetTarget(GameObject target)
    {
        this.target = target;
    }
 
    Vector3 dragPos;//开始拖拽的临时变量
    public void OnDrag(PointerEventData eventData)
    {
        if (!canDrag)
        {
            return;
        }
        RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos);
        //dragPos.z = 0;
        rectTransform.position = dragPos;
    }
 
    public void OnBeginDrag(PointerEventData eventData)
    {
        if (!canDrag)
        {
            return;
        }
        isDraging = true;
        tmpImage.raycastTarget = false;
        levelImage.SetActive(false);
    }
 
    public void OnEndDrag(PointerEventData eventData)
    {
        if (!canDrag)
        {
            return;
        }
 
        isDraging = false;
        if (target != null)
        {
            Debug.Log("生成一个2级的木塔");
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateWoodLv2);
            gameObject.SetActive(false);
            //target.GetComponent<Image>().sprite = tmpImage.sprite;
        }
        else
        {
            rectTransform.anchoredPosition = pos;
            tmpImage.raycastTarget = true;
            levelImage.SetActive(true);
        }
    }
}