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

古典网站建设公司seo网站推广优化就找微源优化

古典网站建设公司,seo网站推广优化就找微源优化,funpinpin建站平台,人力资源公司怎么开(感觉Csdn代码页面可以再大一点或者加个放大功能 不然得划着看不太舒服) 1.关键接口,三个拖拽相关的 2.关键参数,PointerEventData 一直没仔细看过,其实有包含鼠标相关的很多参数,鼠标点击次数&#xff…

(感觉Csdn代码页面可以再大一点或者加个放大功能 不然得划着看不太舒服)

1.关键接口,三个拖拽相关的

2.关键参数,PointerEventData

一直没仔细看过,其实有包含鼠标相关的很多参数,鼠标点击次数,判断是否拖动等等。这里是使用了pointerCurrentRaycast,也就是当前触碰到的物体的信息,注意是当前,也就是只有一个,所以当我们想要拖动一个道具放到格子中的时候,一定会先触碰到当前道具,所以还需要CanvasGroup组件,当道具开始挪动的时候,将blocksRaycasts设为false,也就是当前道具不能被射线检测,这样就可以检测到道具后面的槽位了

3.关于道具拖动,有两种实现方式

第一种 transform.postion = event.position

第二种 rectTransform.anchoredPosition += eventData.delta;

eventData.delta:鼠标在一帧内的移动距离

这样做会使UI元素在每一帧都根据鼠标的移动更新自己的位置,从而实现了拖拽的效果。

4.基本概念要搞清楚

rectTransform.anchoredPosition:表示Rect Transform的中心点相对于锚点的位置。

event.position:是基于屏幕坐标的,代表了当前鼠标在屏幕上的位置

transform.position它是世界坐标嘛对吧,为什么可以直接使用呢?

其实最稳妥的做法是将event.position通过Camera.ScreenToWorldPoint转换为世界坐标,再给transform.position赋值,在这里没有出错是因为,Canvas 设置为 Screen Space - Overlay 模式时,Canvas的内容会像UI元素一样,直接显示在屏幕的最上层,不受场景中摄像机视角的影响,也就是所有的子元素都是相对于屏幕坐标系的,而不是相对于世界坐标系的。因此,在这种情况下,eventData.position 提供的屏幕坐标可以直接应用于这些 UI 元素的 Transform 组件。

public class UIBagItem : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler
{private Vector3 startVec;public Image img;public Text level;private ItemInfo info;public Transform itemTrans;public Transform pastParent;private RectTransform rectTransform;void Awake(){rectTransform = GetComponent<RectTransform>();}public void Init(int id, int level, Transform parent){this.info = DataManager.Instance.itemInfo[id - 1];this.img.sprite = Resources.Load<Sprite>(Config.bagPath + info.name);this.level.text = level.ToString();this.transform.parent = pastParent = parent;this.rectTransform.anchoredPosition = Vector2.zero;this.itemTrans = GameObject.Find("ItemTransform").transform;}public void OnBeginDrag(PointerEventData eventData){//鼠标点击的点 pointerEventDatathis.transform.SetParent(itemTrans);this.transform.position = eventData.position;this.GetComponent<CanvasGroup>().blocksRaycasts = false;}public void OnDrag(PointerEventData eventData){//eventData.delta 鼠标拖拽的位移量rectTransform.anchoredPosition += eventData.delta;Debug.Log(eventData.pointerCurrentRaycast.gameObject.name);}public void OnEndDrag(PointerEventData eventData){this.GetComponent<CanvasGroup>().blocksRaycasts = true;GameObject target = eventData.pointerCurrentRaycast.gameObject;ItemInfo targetInfo;//判断是否是道具if (target.name == "UIBagItem(Clone)"){targetInfo = target.GetComponent<UIBagItem>().info;//再判断是否可以合成if(this.info.id == targetInfo.id){//可以合成就保存数据DataManager.Instance.UpdateBagInfo(targetInfo.consumeId, targetInfo.composeId);//更新UI 将目标位置的UI更新为合成后的UItarget.GetComponent<UIBagItem>().Init(targetInfo.composeId, DataManager.Instance.itemInfo[targetInfo.composeId - 1].level,target.transform.parent);Destroy(this.gameObject);}//不能合成就交换位置else{//本物体父节点this.transform.SetParent(target.transform.parent);//目标物体的父节点 = 本物体记录的父节点target.transform.SetParent(this.pastParent);//理解为A=B B=C C=A就好了 这里记录一下Transform tempParent = this.pastParent;//这里更新本物体记录的父节点this.pastParent = target.GetComponent<UIBagItem>().pastParent;//目标物体记录的父节点target.GetComponent<UIBagItem>().pastParent = tempParent;//相对于父物体的位置为0所以这样写this.rectTransform.anchoredPosition = Vector2.zero;//相对于父物体的位置为0所以这样写target.GetComponent<UIBagItem>().rectTransform.anchoredPosition = Vector2.zero;//不为0的话就把偏移值赋值上去}}//为什么这里判断标签 是因为格子都是复制出来的 名字后面会有个数else if (target.tag == "BagSlot"){this.transform.SetParent(target.gameObject.transform);this.rectTransform.anchoredPosition = Vector2.zero;}//其他区域 直接归原位else{this.transform.SetParent(this.pastParent);}}
}
http://www.hkea.cn/news/69631/

相关文章:

  • 企业网站建设的核心是企业推广视频
  • 设计素材网站蜂产品推广文章
  • wordpress站点描述seo哪个软件好
  • 澳门服务器做网站需要备案吗百度ai人工智能平台
  • 做化验的在哪个网站里投简历河南网站关键词优化
  • 百度网址大全网站大全网络整合营销方案ppt
  • 海阳市建设工程交易中心网站品牌推广的作用
  • 江西省住房和城乡建设网站成都网站优化seo
  • java资源网站云优化
  • 小程序源码大全网络seo关键词优化技巧
  • 服务佳的小企业网站建设ip子域名大全
  • 网页与制作唐山seo推广公司
  • 自己做的网站怎么弄到网上在线网页制作
  • 电商网站 设计方案百度的排名规则详解
  • 福建省建设厅网站余外链链接平台
  • 广告营销网站市场推广方案
  • 徐州企业做网站软文是什么文章
  • 网站代码备份如何优化seo
  • 百度网站公司信息推广怎么做天津做网站的网络公司
  • wordpress在线pdfseo百度站长工具查询
  • 太仓网站建设有限公司网站设计公司怎么样
  • 网站去哪做在线crm软件
  • 做360手机网站快速汕头seo排名收费
  • 网站建设总做总结宜兴百度推广公司
  • 做毕业网站的周记外贸建站优化
  • 南昌市住房和城乡建设局网站百度官网推广平台电话
  • 真人做视频网站百度怎么发布广告
  • 网站页面优化包括怎么给网站做优化
  • 哪个网站用帝国cms做的软文素材网
  • 网站建设需要的资料深圳精准网络营销推广