Unity 实现圆圈调节
生活随笔
收集整理的這篇文章主要介紹了
Unity 实现圆圈调节
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需求:旋鈕調(diào)節(jié),用鼠標操作😄
?
思路:鼠標屏幕上位置,求出當(dāng)前的旋轉(zhuǎn)角度,求出旋轉(zhuǎn)方向。
public class DragAngleTest : MonoBehaviour {[SerializeField] private Transform operationTrans;[SerializeField] private Transform onTouchPoint;private Vector3 current_pos;private Vector3 old_pos;private Vector3 startPos;// Update is called once per framevoid Update(){if (Input.GetMouseButton(0)){var ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit raycastHit;if (Physics.Raycast(ray, out raycastHit)){operationTrans = raycastHit.transform;var screenPos = Input.mousePosition;screenPos = new Vector3(screenPos.x, screenPos.y, Mathf.Abs(Camera.main.transform.position.z));startPos = Camera.main.ScreenToWorldPoint(screenPos);//TODO:測試小球onTouchPoint.position = raycastHit.point;//Debug.DrawRay(Camera.main.transform.position, raycastHit.point, Color.red);GetAngle();}}}private void GetAngle(){current_pos = operationTrans.position - startPos;var normalDirection = Vector3.Cross(current_pos, old_pos);var angle = Vector2.Angle(current_pos, old_pos);if (normalDirection.z > 0){operationTrans.Rotate(Vector3.forward, angle);//順時針}elseif (normalDirection.z < 0){operationTrans.Rotate(Vector3.forward, -angle);//逆時針}old_pos = current_pos;} }效果
總結(jié)
以上是生活随笔為你收集整理的Unity 实现圆圈调节的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基础语法(二)
- 下一篇: java基础----(三大特性:封装,继