using UnityEngine.EventSystems; using UnityEngine; using UnityEngine.UI; public class MoveObj : MonoBehaviour,IDragHandler,IBeginDragHandler,IEndDragHandler { private Vector3 vec3; private Vector3 pos; public const string GMInputPos_Key = "GMInputPos"; private float[] gmInputPos = new float[3]; private void OnEnable() { if (LocalSave.GetFloatArray(GMInputPos_Key) != null) { gmInputPos = LocalSave.GetFloatArray(GMInputPos_Key); transform.GetComponent().anchoredPosition3D = new Vector3(gmInputPos[0], gmInputPos[1], gmInputPos[2]); } } public void OnBeginDrag(PointerEventData eventData) { GameObject _moveObj = eventData.pointerDrag; vec3 = Input.mousePosition; pos = transform.GetComponent().anchoredPosition3D; } public void OnDrag(PointerEventData eventData) { Vector3 off = Input.mousePosition - vec3; vec3 = Input.mousePosition; pos = pos + off; if (pos.x > -506 && pos.y > -318 && pos.x < 515 && pos.y < 336) { transform.GetComponent().anchoredPosition3D = pos; gmInputPos[0] = pos.x; gmInputPos[1] = pos.y; gmInputPos[2] = pos.z; LocalSave.SetFloatArray(GMInputPos_Key, gmInputPos); } } public void OnEndDrag(PointerEventData eventData) { Debug.Log(pos.x + "和" + pos.y); } }