在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组件

最低0.47元/天 解锁文章
8898

被折叠的 条评论
为什么被折叠?



