查看: 1197|回复: 0
打印 上一主题 下一主题

[经验分享] 鼠标拖动UGUI 进行旋转的代码

[复制链接]
may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52336
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2018-7-22 01:39:07 |只看该作者 |倒序浏览
  1. private Quaternion q;
  2. private Vector3 mousePos;
  3. private Vector3 preMousePos;
  4. private Vector3 modelPos;
  5. private Vector3 localEluer;
  6. private bool IsSelect = false;
  7. private float RotateAngle;
  8. private float angle;
  9. public Transform target1;

  10. void Start()
  11. {
  12.     modelPos = target1.transform.position;
  13.     angle = localEluer.z;
  14.     target1.transform.localEulerAngles = localEluer;
  15. }
  16. void Update()
  17. {

  18.     if (Input.GetMouseButtonDown(0))
  19.     {
  20.         IsSelect = true;
  21.         preMousePos = mousePos = Input.mousePosition;
  22.     }
  23.     if (Input.GetMouseButton(0) && IsSelect)
  24.     {
  25.         IsSelect = true;
  26.         mousePos = Input.mousePosition;
  27.         RotateAngle = Vector3.Angle(preMousePos - modelPos, mousePos - modelPos);
  28.         //print (RotateAngle);

  29.         if (RotateAngle == 0)
  30.         {
  31.             preMousePos = mousePos;
  32.         }
  33.         else
  34.         {
  35.             q = Quaternion.FromToRotation(preMousePos - modelPos, mousePos - modelPos);
  36.             float k = q.z > 0 ? 1 : -1;
  37.             localEluer.z += k * RotateAngle;

  38.             Debug.Log(localEluer.x);

  39.             angle = localEluer.z = Mathf.Clamp(localEluer.z, -36000, 36000);

  40.             target1.transform.localEulerAngles = localEluer;
  41.             preMousePos = mousePos;
  42.         }

  43.     }
  44.     if (Input.GetMouseButtonUp(0))
  45.     {
  46.         IsSelect = false;
  47.     }
  48. }
复制代码
来自:1320494699 的分享
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 07:54 , Processed in 0.178795 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部