using UnityEngine.UI;
|
using UnityEngine;
|
using UnityEngine.EventSystems;
|
using KTGMGemClient;
|
|
public class ImageWater : GuideImageBase, IDragHandler, IBeginDragHandler, IEndDragHandler
|
{
|
RectTransform rectTransform;//自身Rect
|
GameObject target;//推拽到塔位置的标识
|
Image tmpImage;//自身图片
|
Vector2 pos;//初始坐标
|
GameObject levelImage;
|
|
public Vector2 GetStartP
|
{
|
get
|
{
|
return pos;
|
}
|
}
|
// Start is called before the first frame update
|
private void Awake()
|
{
|
rectTransform = GetComponent<RectTransform>();
|
pos = rectTransform.anchoredPosition;
|
tmpImage = GetComponent<Image>();
|
levelImage = transform.Find("Image_1").gameObject;
|
}
|
public override void SetTarget(GameObject target)
|
{
|
this.target = target;
|
}
|
|
Vector3 dragPos;//开始拖拽的临时变量
|
public void OnDrag(PointerEventData eventData)
|
{
|
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out dragPos);
|
rectTransform.position = dragPos;
|
}
|
|
public void OnBeginDrag(PointerEventData eventData)
|
{
|
isDraging = true;
|
tmpImage.raycastTarget = false;
|
levelImage.SetActive(false);
|
|
}
|
|
public void OnEndDrag(PointerEventData eventData)
|
{
|
isDraging = false;
|
if (target != null)
|
{
|
//生成一个1级的水元素塔
|
Debug.Log("生成一个1级的水元素塔");
|
gameObject.SetActive(false);
|
target.GetComponent<Image>().sprite = tmpImage.sprite;
|
EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateWaterLv1);
|
}
|
else
|
{
|
rectTransform.anchoredPosition = pos;
|
tmpImage.raycastTarget = true;
|
levelImage.SetActive(true);
|
|
}
|
}
|
}
|