mycj_demo/mycj/Assets/Script/cardcaozuo.cs

70 lines
2.0 KiB
C#
Raw Normal View History

2024-12-02 09:37:47 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class cardcaozuo : MonoBehaviour,IBeginDragHandler,IDragHandler,IEndDragHandler
{
[Header("<22><>һ<EFBFBD><D2BB>canvas")]
public Canvas canvas;
[Header("<22><>ʾ<EFBFBD><CABE>image")]
public Image cardIconImage;
[Header("<22><>Ӧ<EFBFBD><D3A6>sprite")]
public Sprite cardicon;
[Header("Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")]
public string targetTag;
private Transform recordParent;//<2F><>¼<EFBFBD><C2BC><EFBFBD>ڵ<EFBFBD>
2024-12-02 14:09:47 +08:00
private SpriteAniation spriteAniation;
2024-12-02 09:37:47 +08:00
// Start is called before the first frame update
void Start()
{
this.cardIconImage.sprite = cardicon;
2024-12-02 14:09:47 +08:00
spriteAniation = GetComponent<SpriteAniation>();
spriteAniation.enabled = false;
2024-12-02 09:37:47 +08:00
}
// <20><>ק<EFBFBD><D7A7>ʼ
public void OnBeginDrag(PointerEventData eventData)
{
this.recordParent = this.transform.parent;
this.transform.SetParent(canvas.transform);
//throw new System.NotImplementedException();
}
// <20><>ק<EFBFBD><D7A7>
public void OnDrag(PointerEventData eventData)
{
this.transform.position = Input.mousePosition;
}
// <20><>ק<EFBFBD><D7A7><EFBFBD><EFBFBD>
public void OnEndDrag(PointerEventData eventData)
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ŀ<EFBFBD><C4BF>
List<RaycastResult> results = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventData, results);
foreach (var result in results)
{
if (result.gameObject.CompareTag(targetTag)) // <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ƿ<EFBFBD>ΪĿ<CEAA><C4BF><EFBFBD><EFBFBD>
{
Debug.Log("<22>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
transform.SetParent(result.gameObject.transform); // <20><><EFBFBD><EFBFBD>ΪĿ<CEAA><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
transform.localPosition = Vector3.zero; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
this.enabled = false;//<2F><><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>
2024-12-02 14:09:47 +08:00
spriteAniation.enabled = true;
2024-12-02 09:37:47 +08:00
return;
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>򣬷<EFBFBD><F2A3ACB7><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD>ڵ<EFBFBD>
Debug.Log(<><CEB4><EFBFBD>õ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>򣬷<EFBFBD><F2A3ACB7><EFBFBD>ԭλ<D4AD><CEBB>");
transform.SetParent(recordParent);
transform.localPosition = Vector3.zero; // <20><><EFBFBD>õ<EFBFBD>ԭʼλ<CABC><CEBB>
}
}