84 lines
2.4 KiB
C#
84 lines
2.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
|
|
public class FakeFingerManager : MonoBehaviour, IPointerDownHandler, IBeginDragHandler, IEndDragHandler, IDragHandler, IDropHandler{
|
|
|
|
public HandManager.FingerTypes fingerType = HandManager.FingerTypes.Default;
|
|
|
|
[SerializeField] Canvas canvas = default;
|
|
|
|
RectTransform rectTransform;
|
|
CanvasGroup canvasGroup;
|
|
Vector2 defaultPos;
|
|
|
|
[SerializeField] float smoothTime = .5f;
|
|
[HideInInspector] public bool dragging;
|
|
[HideInInspector] public Vector2 posToGo;
|
|
Vector2 position;
|
|
|
|
[HideInInspector] public bool setPos;
|
|
[HideInInspector] public int index;
|
|
|
|
void Awake(){
|
|
rectTransform = GetComponent<RectTransform>();
|
|
canvasGroup = GetComponent<CanvasGroup>();
|
|
defaultPos = posToGo = rectTransform.anchoredPosition;
|
|
}
|
|
|
|
public void OnBeginDrag(PointerEventData eventData){
|
|
canvasGroup.blocksRaycasts = false;
|
|
canvasGroup.alpha = .6f;
|
|
dragging = true;
|
|
setPos = false;
|
|
}
|
|
|
|
public void OnDrag(PointerEventData eventData){
|
|
rectTransform.anchoredPosition += eventData.delta / canvas.scaleFactor;
|
|
}
|
|
|
|
public void OnEndDrag(PointerEventData eventData){
|
|
StartCoroutine(ResetToDefaultPos());
|
|
canvasGroup.blocksRaycasts = true;
|
|
canvasGroup.alpha = 1f;
|
|
}
|
|
|
|
public void OnPointerDown(PointerEventData eventData){
|
|
|
|
}
|
|
|
|
public void OnDrop(PointerEventData eventData){
|
|
|
|
}
|
|
|
|
void Update(){
|
|
if(!dragging)
|
|
rectTransform.anchoredPosition = Vector2.SmoothDamp(rectTransform.anchoredPosition, posToGo, ref position, smoothTime);
|
|
}
|
|
|
|
IEnumerator ResetToDefaultPos(){
|
|
yield return new WaitForSeconds(.1f);
|
|
if (!setPos){
|
|
/*switch(index){
|
|
case 1:
|
|
hand.finger1 = false;
|
|
break;
|
|
case 2:
|
|
hand.finger2 = false;
|
|
break;
|
|
case 3:
|
|
hand.finger3 = false;
|
|
break;
|
|
case 4:
|
|
hand.finger4 = false;
|
|
break;
|
|
case 5:
|
|
hand.finger5 = false;
|
|
break;
|
|
}*/
|
|
posToGo = defaultPos;
|
|
dragging = false;
|
|
}
|
|
}
|
|
}
|