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

news/2025/3/19 23:57:17/

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;}}


http://www.ppmy.cn/news/846597.html

相关文章

swiper插件禁止鼠标拖动,且同时支持鼠标滚轮切换

禁止鼠标拖动 > 在 swiper-container同级的div加上 类名swiper-no-swiping 支持鼠标滚轮切换 > 案例2 案例&#xff1a; 1、禁止鼠标拖动 <div class"swiper-container swiper-no-swiping"></div>2、支持鼠标滚轮切换 <script language"…

ceisum禁止鼠标左键和右键拖动,滚轮缩放事件

禁止鼠标左键拖动事件 cesiumview.scene.screenSpaceCameraController.enableRotatefalse;禁止鼠标中键缩放 cesiumview.scene.screenSpaceCameraController.enableZoom false;鼠标右键的事件 cesiumview.scene.screenSpaceCameraController.enableTilt false;

iview表格固定后滚动条无法拖动的解决办法

业务需求中 要将前三列冻结,冻结以后 下面的滚动条不能拖动了 下面是解决方法,在app.vue设置这两个属性就ok了 .ivu-table-fixed{margin-bottom: 10px!important;height: auto!important; }

Qt鼠标拖动ScrollArea代替鼠标滚轮操作

因为此前有个项目做的软件要在平板上运行&#xff0c;屏幕不大&#xff0c;滚动条太细&#xff0c;如果加粗滚动条影响美观&#xff0c;滚动条太细又点不到&#xff0c;用户体验较差。所以做了这个鼠标拖动即可代替鼠标滚轮的功能。 dialogex.h #ifndef DIALOGEX_H #define DIA…

Element 表格固定列横向滚动条无法拖动的问题解决

在Element-UI中&#xff0c;当对表格列进行固定后&#xff0c;底部的横向滚动条就无法拖动了&#xff0c;主要的问题就是固定区域盖住了横向滚动条。 方案一&#xff1a;修改el-table__body-wrapper样式的层级&#xff0c;随便设个层级就可 /deep/ .el-table__body-wrapper{z…

AD中拖动器件,无法移动在一起如何解决

1、AD PCB拖动器件&#xff0c;无法移动在一起时如何解决 在PCB 界面 &#xff0c;按下快捷键O,P进入 preference对话框&#xff0c; 找到PCB Edit---->Interactive Routing---->Dragging---->Component Pushing改为 Ignore 2、改变走线模式 shiftR&#xff0c;或…