UGUI 旋转时钟功能

两种模式:

1.Screen Space-Overlay

public void OnDrag(PointerEventData eventData)
{
    Vector2 targetDir = eventData.position - new Vector2(transform.position.x, transform.position.y); // 目标坐标与当前坐标差的向量
   float ang = Vector2.Angle(Vector3.right, targetDir); // 返回当前坐标与目标坐标的角度
    if (eventData.position.y <transform.position.y)
  {
    ang
= 360 - ang;
   }
   transform.localEulerAngles
= new Vector3(0, 0, ang);

}

2.Screen Space-Camera

  public void OnDrag(PointerEventData eventData)
    {
        Camera camera = GameObject.Find("Main Camera").GetComponent<Camera>();
        Vector3 screenPos = camera.WorldToScreenPoint(transform.position);//世界坐标转屏幕坐标
        Vector2 targetDir = eventData.position - new Vector2(screenPos.x, screenPos.y);// 目标坐标与当前坐标差的向量
float ang = Vector2.Angle(Vector3.right, targetDir); // 返回当前坐标与目标坐标的角度
        if (eventData.position.y < screenPos.y)
        {
            ang = 360 - ang;
        }
        transform.localEulerAngles = new Vector3(0, 0, ang);
       
    }
原文地址:https://www.cnblogs.com/kadaj/p/9935466.html