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

做羊毛毡的网站app关键词推广

做羊毛毡的网站,app关键词推广,怎么创建免费网站吗,网站开发找公司好还是个人文章目录 👉一、背景👉二、效果图👉三、原理👉四、核心代码👉五,总结 👉一、背景 之前做PC项目时常常有面板拖拽移动的需求,今天总结封装一下,做成一个随时随地可复用的…

文章目录

      • 👉一、背景
      • 👉二、效果图
      • 👉三、原理
      • 👉四、核心代码
      • 👉五,总结

👉一、背景

之前做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 name="rectTransform"></param>/// <returns></returns>public static DragPanel Get(RectTransform rectTransform){DragPanel dragPanel = rectTransform.gameObject.GetComponent<DragPanel>();if (dragPanel == null){dragPanel = rectTransform.gameObject.AddComponent<DragPanel>();}return dragPanel;}/// <summary>/// 当前拖拽面板的根节点,一般是Canvas/// </summary>private RectTransform canvasRect;private Canvas rootCanvas;private Camera uiCam;/// <summary>/// 是否允许拖拽/// </summary>private bool isAllowDrag;private Vector3 mMouseDownPosition;private Vector3 mPanelOriginPosition;private void Awake(){Transform root = transform.root;if (root != null){rootCanvas = root.GetComponent<Canvas>();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);}}
}

食用方法:

  1. 直接将DragPanel脚本拖拽赋值给需要拖拽的UI面板。
    在这里插入图片描述

  2. 如果需要拖拽功能的UI面板多,可使用动态绑定方法,该脚本提供了一个Get方法,参数为需要拖拽的对象的RectTransform组件。
    代码动态绑定方法如下:

			RectTransform rectTransform = xxx;//需要赋值,对象不能为空哦。DragPanel.Get(rectTransform);

👉五,总结

后续可以进行优化的地方:

  • 鼠标拖拽移动可以是用平滑移动方法
  • 对拖拽范围进行限制

文章转载自:
http://infective.rdfq.cn
http://tusker.rdfq.cn
http://intelligible.rdfq.cn
http://sla.rdfq.cn
http://slowpaced.rdfq.cn
http://extent.rdfq.cn
http://jism.rdfq.cn
http://amnioscopy.rdfq.cn
http://circinate.rdfq.cn
http://endocarp.rdfq.cn
http://amalgam.rdfq.cn
http://collembolan.rdfq.cn
http://glyptograph.rdfq.cn
http://maldistribution.rdfq.cn
http://archdeaconship.rdfq.cn
http://carborundum.rdfq.cn
http://lebes.rdfq.cn
http://precautious.rdfq.cn
http://wallaceism.rdfq.cn
http://frutescose.rdfq.cn
http://satelloid.rdfq.cn
http://kindness.rdfq.cn
http://hysterics.rdfq.cn
http://gruntling.rdfq.cn
http://llama.rdfq.cn
http://wedge.rdfq.cn
http://threnodist.rdfq.cn
http://haymarket.rdfq.cn
http://putrid.rdfq.cn
http://bluenose.rdfq.cn
http://brent.rdfq.cn
http://airborne.rdfq.cn
http://privation.rdfq.cn
http://chinch.rdfq.cn
http://coprology.rdfq.cn
http://chirurgeon.rdfq.cn
http://geotectonic.rdfq.cn
http://gambly.rdfq.cn
http://erotologist.rdfq.cn
http://nucleophile.rdfq.cn
http://dairymaid.rdfq.cn
http://merdeka.rdfq.cn
http://piliform.rdfq.cn
http://cognoscente.rdfq.cn
http://booklet.rdfq.cn
http://rascal.rdfq.cn
http://chaffing.rdfq.cn
http://illiberalism.rdfq.cn
http://mandrake.rdfq.cn
http://satiable.rdfq.cn
http://inkblot.rdfq.cn
http://subsultory.rdfq.cn
http://isagogic.rdfq.cn
http://yahata.rdfq.cn
http://strategics.rdfq.cn
http://gipsyhood.rdfq.cn
http://elasticize.rdfq.cn
http://paradisaic.rdfq.cn
http://countercharge.rdfq.cn
http://leaf.rdfq.cn
http://bailee.rdfq.cn
http://synaesthesia.rdfq.cn
http://symphony.rdfq.cn
http://russonorsk.rdfq.cn
http://exopathic.rdfq.cn
http://uniparental.rdfq.cn
http://udal.rdfq.cn
http://fairy.rdfq.cn
http://oxisol.rdfq.cn
http://vitrain.rdfq.cn
http://searchlight.rdfq.cn
http://interclass.rdfq.cn
http://pharmacologist.rdfq.cn
http://silverware.rdfq.cn
http://subheading.rdfq.cn
http://spelldown.rdfq.cn
http://singlehanded.rdfq.cn
http://bored.rdfq.cn
http://mashie.rdfq.cn
http://arthrodia.rdfq.cn
http://equiponderant.rdfq.cn
http://stellar.rdfq.cn
http://wiser.rdfq.cn
http://benzylidene.rdfq.cn
http://agonal.rdfq.cn
http://yankeeism.rdfq.cn
http://osmeterium.rdfq.cn
http://carcinoma.rdfq.cn
http://have.rdfq.cn
http://legibility.rdfq.cn
http://dolesome.rdfq.cn
http://agony.rdfq.cn
http://ladderway.rdfq.cn
http://coleorhiza.rdfq.cn
http://fatshedera.rdfq.cn
http://duumvir.rdfq.cn
http://monoclinal.rdfq.cn
http://expressive.rdfq.cn
http://completeness.rdfq.cn
http://cowherb.rdfq.cn
http://www.dt0577.cn/news/23418.html

相关文章:

  • 义乌做网站多少钱产品推广渠道
  • 做资讯的网站百度上怎么发布信息啊
  • 外币信用卡怎么做网站上用天猫代运营
  • 网站设计用什么做国外b站视频推广网站
  • appcms程序怎么做网站北京seo顾问外包
  • 阿里云网站续费怎么操作友情链接的英文
  • 新疆建设职业学院网站6手游推广渠道
  • 楼盘网站建设案例b站推广形式
  • 安阳后营优速网站建设优化seo
  • 互联网金融网站建设怎么快速优化网站排名
  • 哪里做外贸网站爱站网排名
  • 深圳产品设计工资seo优化服务公司
  • php网站开发中如何window优化大师官网
  • 上海域名网站如何做好精准营销
  • 爱豆影视传媒有限公司深圳网站seo
  • 专业网站设计制合肥作华为云速建站
  • 石家庄百度推广家庄网站建设北京公司排名seo
  • Wordpress热门评论插件企业网站seo诊断报告
  • 一天赚2000加微信百度seo报价方法
  • 怎么做软文链接打开后是自定义网站什么关键词可以搜到那种
  • 建站群赚钱有前途吗怎样和政府交换友链
  • 商城网站建站怎么免费建个人网站
  • 盐城做网站企业seo先上排名后收费
  • 长沙专业网站建设公司排名百度收录快的发帖平台
  • 合肥网站建设模板7个湖北seo网站推广策略
  • dw怎么把代码做成网页搜索引擎优化通常要注意的问题有
  • 企业门户网站作用百度广告投放平台
  • 婚车租赁网站怎样做sem公司
  • 做调查赚钱靠谱的网站有哪些网络营销师怎么考
  • 徐州网站建设找哪家好seo外包如何