PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更。
笔记内容均为 自己理解,不保证每个都对
Hint近期 可能会少更,一边准备学校项目,一边学习Unity,一边写程序文档,有点忙不过来
Part 1 物品拖动交换(交换单元格):
主要实现,两个Panel之间的 单元格内 图片的交换,即 模拟背包和仓库
物体有两种方式:
第一种:交换子类在父类中的位置顺序,适用于在同一个Panel
第二种:交换图片信息,即交换Image组件中的Sprite
拖拽的前提是我们要获取到将要拖拽物体的信息:
public void OnBeginDrag(PointerEventData eventData)
{
if(curImage.color.a != 0) //判断图片是否全透明
{
canDrag = true;
// 将 当前选择的图片 赋值给 拖动的图片
PickManager.Instance.dragImage.sprite = curImage.sprite;
//隐藏当前图片
curImage.color = new Color(1, 1, 1, 0);
//将 拖动的图片显示
PickManager.Instance.dragImage.color = new Color(1, 1, 1, 1);
//初始化一下
PickManager.Instance.downImage = null;
}
}
利用 上篇博客 所学到的 UI部分接口 可实现物品拖动:
public void OnDrag(PointerEventData eventData)
{
if(canDrag)
//移动 拖拽的 图片
PickManager.Instance.dragImage.transform.position = eventData.position;
}
若要实现物体交换,我们则需要获得 拖拽物体所经过的物体的信息
可以通过 IPointerEnterHandler 接口来获取
PickManager为自己定义的管理器脚本,只是实例化一次
curImage为