using UnityEngine.UI; using UnityEngine; using UnityEngine.EventSystems; using KTGMGemClient; public class ImageFire1 : 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(); pos = rectTransform.anchoredPosition; tmpImage = GetComponent(); 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().sprite = tmpImage.sprite; EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateFireLv1); } else { rectTransform.anchoredPosition = pos; levelImage.SetActive(true); tmpImage.raycastTarget = true; } } }