using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using Google.Protobuf;
public class Rocker : MonoBehaviour ,IDragHandler,IEndDragHandler
{
public RectTransform rocker;
public RectTransform bar;
float r;
public void OnDrag(PointerEventData eventData)
{
Vector2 pos = eventData.position - rocker.anchoredPosition;
bar.anchoredPosition = Vector2.ClampMagnitude(pos, r);
Vector2 v2 = bar.anchoredPosition / r;
SendMove(v2);
}
public void OnEndDrag(PointerEventData eventData)
{
bar.localPosition = Vector3.zero;
SendMove(Vector2.zero);
}
void Start()
{
r = rocker.rect.width / 2;
}
public void SendMove(Vector2 v2)
{
//计算角度0-360
float ang = Mathf.Atan(v2.x / v2.y) * Mathf.Rad2Deg;
if (v2.y < 0)
{
ang += 180;
}
else if (v2.x < 0)
{
ang += 360;
}
ang += Camera.main.transform.eulerAngles.y;
//计算距离0-1
float dis = Vector2.Distance(Vector2.zero, v2);
//通过消息中心发送
MessageCenter.Ins.Send(MsgID.MOVE, ang, dis);
}
}