This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
mochapine64backup/MoCha/Assets/Scripts/DragAndDrop.cs

47 lines
1.2 KiB
C#
Raw Normal View History

2018-04-10 13:45:41 -05:00
using UnityEngine;
using UnityEngine.EventSystems;
public class DragAndDrop : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public static GameObject DraggedInstance;
public Inventory inventory;
2018-04-10 13:45:41 -05:00
Vector3 _startPosition;
Vector3 _offsetToMouse;
float _zDistanceToCamera;
#region Interface Implementations
public void OnBeginDrag (PointerEventData eventData)
{
DraggedInstance = gameObject;
_startPosition = transform.position;
_zDistanceToCamera = Mathf.Abs (_startPosition.z - Camera.main.transform.position.z);
_offsetToMouse = _startPosition - Camera.main.ScreenToWorldPoint (
new Vector3 (Input.mousePosition.x, Input.mousePosition.y, _zDistanceToCamera)
);
}
public void OnDrag (PointerEventData eventData)
{
if(Input.touchCount > 1)
return;
transform.position = Camera.main.ScreenToWorldPoint (
new Vector3 (Input.mousePosition.x, Input.mousePosition.y, _zDistanceToCamera)
) + _offsetToMouse;
}
public void OnEndDrag (PointerEventData eventData)
{
_offsetToMouse = Vector3.zero;
2018-04-26 06:59:29 -05:00
if (Input.mousePosition.y < 75) {
DraggedInstance.SetActive (false);
2018-04-26 06:59:29 -05:00
inventory.AddItem (DraggedInstance.name);
}
DraggedInstance = null;
2018-04-10 13:45:41 -05:00
}
#endregion
}