using DG.Tweening; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class StopValve : MonoBehaviour, IBeginDragHandler, IEndDragHandler, /*IDragHandler,*/ IPointerClickHandler { private Vector3 start = new Vector3(0, 0, -80); //滑动点到阀门图片中点的向量 [SerializeField] Image stopValveImage; //截止阀 public float timeCount = 0; public float limitTime = 0; public float linearMeasure; public int index; //阀门旋转多少圈可以开到100 public Vector2 currentPos = new Vector2(); public Transform trans; [SerializeField] int mix; [SerializeField] int max; [SerializeField] float X;//X或者特定轴要固定的 [SerializeField] int sum = 90;//初始位置 [SerializeField] int ZhuanSum;//要旋转一次的角度 void OnEnable() { //UIManager.ins.ButtonToUI_but(true, confirm, popup); //AudioManager.ins.PlayAudio(7); //StartCoroutine(Deng()); } /// /// 开始拖拽 /// /// public void OnBeginDrag(PointerEventData eventData) { //currentPos = transform.position; //sum = (int)linearMeasure; } ///// ///// 拖拽中 ///// ///// //public void OnDrag(PointerEventData eventData) //{ // timeCount += Time.deltaTime; // if (timeCount > limitTime) // { // float x = Input.GetAxis("Mouse X"); // float y = Input.GetAxis("Mouse Y"); // if (x != 0 || y != 0) // { // if (x > 0 || y > 0) // { // sum = ZhuanSum; // } // else if (x < 0 || y < 0) // { // sum = -ZhuanSum; // } // } // Debug.Log("旋转的方法"+x+" "+y); // Deng(sum); // timeCount = 0; // } //} void Update() { if (true) { } } void Deng(float angle) { float z = Mathf.Clamp(angle, mix, max); stopValveImage.transform.eulerAngles = new Vector3(0, 0, z); linearMeasure = z; if (transform.name.Equals("万用表")) { trans.DOLocalRotate(new Vector3(X, 0, ~(int)z), 0.01f); } else { trans.DOLocalRotate(new Vector3(X, ~(int)z, 0), 0.01f); } Debug.Log(Mathf.Clamp(~(int)z, mix, max)); } /// /// 拖拽结束 /// /// public void OnEndDrag(PointerEventData eventData) { timeCount = 0; } public void OnPointerClick(PointerEventData eventData) { //timeCount += Time.deltaTime; //if (timeCount > limitTime) //{ //float x = Input.GetAxis("Mouse X"); //float y = Input.GetAxis("Mouse Y"); //if (x != 0 || y != 0) //{ // if (x > 0 || y > 0) // { // sum = ZhuanSum; // } // else if (x < 0 || y < 0) // { // sum = -ZhuanSum; // } //} //Debug.Log("旋转的方法" + x + " " + y); //Deng(sum); int z = (int)linearMeasure; if (z % max != 0) { z += ZhuanSum; } else { z = mix; } Deng(z); // timeCount = 0; //} } }