unity实现物品或技能图标的拖拽功能

在Unity中设计背包或技能栏时,通常使用MVC模式。模型脚本获取数据库中的图标和资源,视图脚本展示这些资源,控制器脚本负责拖放功能。Drag脚本作为控制器的一部分,实现拖放的核心功能,利用Unity的OnBeginDrag、OnDrag和OnEndDrag接口,以及SetDraggedPosition方法来跟踪拖动位置。在OnEndDrag中进行交换位置的判断和实现。
摘要由CSDN通过智能技术生成

在设计背包或者技能栏的时候,通常采用MVC模式。

Model脚本读取存放在数据库中的物品或技能的相关资源(Icon,prefabs)

view脚本将读取的资源显示在背包或技能栏中。

而Controller脚本我则用来实现物品或技能的拖拽。而我的Drag脚本分在Controller中,给每个物品或技能资源都挂上脚本,实现拖拽核心功能。



而Drag脚本中的方法Unity已提供接口。

主要方法是public void OnBeginDrag (PointerEventData eventData)

                    public void OnDrag(PointerEventData eventData)

                    public void OnEndDrag(PointerEventData eventData)

而函数private void SetDraggedPosition(PointerEventData eventData)是Unity提供的让拖拽目标跟随鼠标移动的方法,我在上面3个函数中都进行了调用。

Start()和OnbeginDrag中的数据都是为OnEndDrag中判断能否交换目标物品的位置做准备,以及如果能则实现交换。实现的方法千差万别,感觉我这里写的方法适用范围很小,若要参考推荐重写这部分功能(判断能否交换及实现交换)

代码如下

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
/// <summary>
/// MVC-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值