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);
|
}
|
}
|
}
|