失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > unity 鼠标拖动UI 滚轮缩放大小

unity 鼠标拖动UI 滚轮缩放大小

时间:2019-02-07 03:44:43

相关推荐

unity 鼠标拖动UI 滚轮缩放大小

using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;/// <summary>/// 鼠标拖动UI 滚轮缩放大小/// </summary>public class PageDragToZoom : MonoBehaviour, IPointerExitHandler, IPointerEnterHandler, IBeginDragHandler, IDragHandler{/// <summary>/// 缩放速度/// </summary>private float wheelSpeed = 0.1f;/// <summary>/// 是否缩放(鼠标进入退出 判断)/// </summary>public bool isTrue;Vector3 _originScale;//初始大小Vector3 _originPoint;//初始位置public Button _closeButton;//复位Vector3 offPos;Vector3 arragedPos;//Vector3 _scaleOne;//public Transform _ThisTransform;void Start(){_originPoint = this.transform.position;_originScale = this.transform.localScale;_closeButton.onClick.AddListener(CloseImage);//_scaleOne = transform.localScale;}void Update(){//UI最大可以放到两倍if (transform.localScale.x >= 2 || transform.localScale.x >= 2){transform.localScale = new Vector3(2, 2, 2);}//UI最小可以缩小两倍if (transform.localScale.x <= 0.2f || transform.localScale.x <= 0.2f){transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);}//通过鼠标滚轮键来对照片进行缩放if (isTrue == true){// Debug.Log("通过鼠标滚轮键来对照片进行缩放");transform.localScale += new Vector3(Input.mouseScrollDelta.y * wheelSpeed, Input.mouseScrollDelta.y * wheelSpeed, Input.mouseScrollDelta.y * wheelSpeed);}}/// <summary>/// 回到初始状态/// </summary>private void CloseImage(){this.transform.position = _originPoint;this.transform.localScale = _originScale;}/// <summary>/// 鼠标进入/// </summary>/// <param name="eventData"></param>public void OnPointerEnter(PointerEventData eventData){isTrue = true;}/// <summary>/// 鼠标退出/// </summary>/// <param name="eventData"></param>public void OnPointerExit(PointerEventData eventData){isTrue = false;}/// <summary>/// 开始拖拽的时候/// </summary>/// <param name="eventData"></param>public void OnBeginDrag(PointerEventData eventData){if (RectTransformUtility.ScreenPointToWorldPointInRectangle(transform.GetComponent<RectTransform>(), Input.mousePosition, eventData.enterEventCamera, out arragedPos)){offPos = transform.position - arragedPos;}}/// <summary>/// 拖拽中/// </summary>/// <param name="eventData"></param>public void OnDrag(PointerEventData eventData){transform.position = offPos + Input.mousePosition;}}

如果觉得《unity 鼠标拖动UI 滚轮缩放大小》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。