当前位置: 首页 > news >正文

建设培训网站淘宝优惠券发布网站怎么做

建设培训网站,淘宝优惠券发布网站怎么做,系统更新后wordpress,慈溪做网站文章目录 #x1f449;一、背景#x1f449;二、效果图#x1f449;三、原理#x1f449;四、核心代码#x1f449;五#xff0c;总结 #x1f449;一、背景 之前做PC项目时常常有面板拖拽移动的需求#xff0c;今天总结封装一下#xff0c;做成一个随时随地可复用的… 文章目录 一、背景二、效果图三、原理四、核心代码五总结 一、背景 之前做PC项目时常常有面板拖拽移动的需求今天总结封装一下做成一个随时随地可复用的拖拽面板功能。 二、效果图 三、原理 实现原理也非常简单。首先继承UI事件系统下的两个接口 IBeginDragHandler, IDragHandler 进而实现两个接口方法即可主要是在开始拖拽事件里面记录鼠标按下的坐标mMouseDownPosition和面板的初始坐标mPanelOriginPosition然后在拖拽过程中鼠标在Canvas下的坐标减去开始拖拽的鼠标坐标得到一个鼠标坐标偏移量加上原始面板坐标得到一个新的拖拽位置的坐标进行坐标赋值即可。 四、核心代码 using UnityEngine; using UnityEngine.EventSystems;namespace Utility {/// summary/// UGUI面板的拖拽移动功能/// /summary[RequireComponent(typeof(RectTransform))]public class DragPanel : MonoBehaviour, IBeginDragHandler, IDragHandler{/// summary/// 静态方法提供动态绑定拖拽面板的接口/// /summary/// param namerectTransform/param/// returns/returnspublic static DragPanel Get(RectTransform rectTransform){DragPanel dragPanel rectTransform.gameObject.GetComponentDragPanel();if (dragPanel null){dragPanel rectTransform.gameObject.AddComponentDragPanel();}return dragPanel;}/// summary/// 当前拖拽面板的根节点一般是Canvas/// /summaryprivate RectTransform canvasRect;private Canvas rootCanvas;private Camera uiCam;/// summary/// 是否允许拖拽/// /summaryprivate bool isAllowDrag;private Vector3 mMouseDownPosition;private Vector3 mPanelOriginPosition;private void Awake(){Transform root transform.root;if (root ! null){rootCanvas root.GetComponentCanvas();canvasRect root as RectTransform;if (rootCanvas.renderMode RenderMode.ScreenSpaceCamera){uiCam rootCanvas.worldCamera;}}isAllowDrag rootCanvas ! null;}public void OnBeginDrag(PointerEventData eventData){if (!isAllowDrag) return;RectTransformUtility.ScreenPointToWorldPointInRectangle(canvasRect,Input.mousePosition,uiCam,out mMouseDownPosition);mPanelOriginPosition transform.position;}public void OnDrag(PointerEventData eventData){if (!isAllowDrag) return;Vector3 currentMousePosInUGUI;RectTransformUtility.ScreenPointToWorldPointInRectangle(canvasRect,Input.mousePosition,uiCam,out currentMousePosInUGUI);transform.position mPanelOriginPosition (currentMousePosInUGUI - mMouseDownPosition);}} } 食用方法 直接将DragPanel脚本拖拽赋值给需要拖拽的UI面板。 如果需要拖拽功能的UI面板多可使用动态绑定方法该脚本提供了一个Get方法参数为需要拖拽的对象的RectTransform组件。 代码动态绑定方法如下 RectTransform rectTransform xxx;//需要赋值对象不能为空哦。DragPanel.Get(rectTransform);五总结 后续可以进行优化的地方 鼠标拖拽移动可以是用平滑移动方法对拖拽范围进行限制
http://www.dnsts.com.cn/news/203307.html

相关文章:

  • 网站建设调查报告中国新闻社归哪个部门管
  • 网站不用域名可以吗注册中文域名费用一般多少钱
  • 佛山网站建设网站制作公司网站建设和应用的情况
  • 福州建设人才网站sae wordpress 4.3
  • 晋中住房与城乡建设厅网站娱乐城网站开发
  • 网站建设不用备案的wordpress pods
  • 确定网站主题鞍山人才网站
  • 网站推广广告营销方案音乐排行榜网页设计作业
  • 海淀重庆网站建设html好看的颜色代码
  • 网站建设程序制作设计网站会员哪个好用
  • 长沙网页建站dz网站模板 首页显示内容
  • 基于mvc的网站开发网站备案号如何查找
  • 无锡电子商城网站设计国内重大新闻事件2021简短
  • 深圳做网站 汉狮网络品牌网站开发特点
  • 网站建设首页包括什么软件建的网站经常打不开
  • 虚拟机主机网站建设的几个步骤做网站需要网页嵌套吗
  • 兰州网站卡法天津网架公司
  • 电子商务自助建网站建平县网站建设
  • 怎么做个手机版的网站吗wordpress安装地图代码
  • 呼和浩特网站网站建设旅游景区网站建设规划方案
  • 外贸网站 设计软件开发合同范本大全
  • 东莞做网站的公司哪家最好有没有专门做儿童房的网站
  • 网站关键字优化教程百度首页精简版
  • 建微信网站模板做精美得ppt网站知乎
  • 山东网站建设标准wordpress非插件幻灯
  • 做app模板网站有哪些代做关键词收录排名
  • angularjs网站模板北京商场关闭通知
  • 潍坊网站建设壹品网络wordpress改造彩票
  • 做平面设计都在那个网站找免费素材网站建设哪家go
  • 无障碍 网站 怎么做如何调整