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

dedecms做中英文网站天津seo排名

dedecms做中英文网站,天津seo排名,自己设计房子软件手机,太原网络推广哪家好在Unity中,背包系统是一种常见的游戏系统,可以用于管理和展示玩家所持有的物品、道具或装备。 其中的拖拽功能非常有意思,具体功能就是玩家可以通过拖拽物品图标来移动物品在背包中的位置,或者将物品拖拽到其他位置或界面中&…

在Unity中,背包系统是一种常见的游戏系统,可以用于管理和展示玩家所持有的物品、道具或装备。

其中的拖拽功能非常有意思,具体功能就是玩家可以通过拖拽物品图标来移动物品在背包中的位置,或者将物品拖拽到其他位置或界面中,或者将两个物品互换位置。

具体是如何实现的呢?下面我们就来简单说说。

1、搭建个简单背包格子和物品:

请添加图片描述

2、核心部分,控制脚本:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections.Generic;public class DragDropItem : MonoBehaviour, IBeginDragHandler, IPointerDownHandler, IDragHandler, IEndDragHandler
{private RectTransform rectTransform; // 图标的RectTransform组件private Canvas canvas; // Canvas组件,用于确定拖拽的缩放因子private Transform nowParent; //物体的目前父物体//private Vector2 originalPosition; // 图标的初始位置private bool isRaycastPass = true;//默认射线不能穿透物品void Start(){rectTransform = GetComponent<RectTransform>(); // 获取图标的RectTransform组件canvas = GetComponentInParent<Canvas>(); // 获取父级Canvas组件//originalPosition = rectTransform.anchoredPosition; // 记录图标的初始位置}public void OnBeginDrag(PointerEventData eventData){if (transform.GetComponent<Image>().raycastTarget) transform.GetComponent<Image>().raycastTarget = false;nowParent = transform.parent;  //nowparent为被拖拽物体的当前父物体        transform.SetParent(canvas.transform);//将当前拖拽的物体放在canvas下isRaycastPass = false;//设置ui可穿透}public void OnPointerDown(PointerEventData eventData){//if (transform.GetComponent<Image>().raycastTarget) transform.GetComponent<Image>().raycastTarget = false;//originalPosition = rectTransform.anchoredPosition; // 记录拖拽前的位置}public void OnDrag(PointerEventData eventData){rectTransform.anchoredPosition += eventData.delta / canvas.scaleFactor; // 根据鼠标移动更新图标位置}public void OnEndDrag(PointerEventData eventData){GameObject obj = eventData.pointerCurrentRaycast.gameObject;//获取到鼠标终点位置下的物体          if (obj != null){if (obj.tag == "selected"){// 检测到物体是指定的空格子,则把物体放到该格子下。transform.SetParent(obj.transform);transform.position = obj.transform.position; // 将图标移到放置位置                }else if(obj.tag == "weapon"){// 检测到格子已有物体,则物体替换位置。transform.SetParent(obj.transform.parent);transform.position = obj.transform.parent.position; obj.transform.SetParent(nowParent);obj.transform.position = nowParent.position;}else{transform.SetParent(nowParent);transform.position = nowParent.position; // 如果没有合法放置位置,将图标返回到初始位置}}else{transform.SetParent(nowParent);transform.position = nowParent.position; // 如果没有合法放置位置,将图标返回到初始位置}transform.GetComponent<Image>().raycastTarget = true;isRaycastPass = true;//设置ui不可穿透}}

3、把脚本赋予每一个物品

4、至此背包系统中拖拽物体到指定位置或互换位置的效果就实现了。

Unity 背包系统中拖拽物体到指定位置或互换位置效果的实现

http://www.jinmujx.cn/news/76962.html

相关文章:

  • 怎样创建一个app重庆seo排名公司
  • 软件技术专升本对口专业seo网络营销技巧
  • wordpress积分交换广州seo外包多少钱
  • 商丘做网站哪家好百度搜索引擎网站
  • 陕西网站制作商郑州百度推广seo
  • 乐度网上购物网站建设方案海外新闻发布
  • id注册网站河南推广网站
  • wordpress 可视化插件seo推广教程视频
  • wordpress替换百度站内搜索网站交换链接的常见形式
  • 网页设计规范的主要内容简述seo对各类网站的作用
  • 西宁好的网站建设公司app排名优化公司
  • 网站公示如何做链接自己有货源怎么找客户
  • 做网站的合作案例91
  • 青岛微网站建设什么是优化师
  • 网页制作流程不包括西安seo顾问
  • 做网站设计要适配到手机端么短视频seo排名
  • 网站开发的团队有哪些seo网站营销推广公司
  • 无锡网站建设哪家公司比较好开封网站设计
  • 做网站付款流程短视频运营
  • 缪斯设计网站重庆企业免费建站
  • 餐饮网站开发背景站长工具a级
  • 罗源做网站的公司怎么去优化关键词
  • 个体户 网站建设石家庄最新消息
  • 网站建设合同注意事项营销型企业网站推广的方法有哪些
  • 外贸电商是做什么的seo优化专员工作内容
  • 做venn的网站网站设计优化
  • 网站建设服务面试题网页设计与制作项目教程
  • 网站添加新闻seo教程搜索引擎优化
  • 免费的室内设计网站营销方案100例
  • 做网站国外访问sem是什么检测分析