Unity实现背包系统物品拖拽

本文介绍了在Unity中实现背包系统物品拖拽的两种方法。第一种利用射线检测,但效率较低;第二种是通过重写IDropHandler接口,实现OnDrop方法,当物品落下时调用。示例代码展示了如何在物品槽位之间进行拖放操作,包括物品的赋值和位置更新。完整代码和工程文件可在指定链接下载。
摘要由CSDN通过智能技术生成

1.要实现在菜单格子里拖拽物品如图。

2.有物品的格子之间能够相互切换。

实现方法也有多种,第一种是通过射线检测,检测拿到格子的位置赋值,但是这个效率不是很高。

第二种是通过重写IDropHandler接口实现自带的方法OnDrop(PointerEventData evetData)这个方法在物品落下时调用。

代码:

Public Class Slot: MonoBehaviour{

public int slotID;//槽位ID
    Inventory inv;//数据管理类
    public void OnDrop(PointerEventData eventData){

        var droppenItem = eventData.pointerDrag.GetComponent<ItemData> ()

//创建一个拖拽物体抽象类   

     if (inv.items [slotID].ID == -1) {

            inv.items [droppenItem.slotIndex] = new Item ();
            droppenItem.slotIndex = slotID;
            inv.items [slotID] = droppenItem.item;

//进行赋值操作

        } else if (droppenItem.slotIndex != slotID) {

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值