Unity 之 NGUI实现背包功能
【摘要】
NGUI下创建几个Sprite图片,作为盛放物品的格子,并命名为Sprite。在其中的一个格子里创建四个Sprite,并命名Wupin_Baoxiang,,,作为物品,,,记得在每个框和物体都加上Box Collicer,,并且为边框加上Iskuang的标签,物品身上加上标签IsWuTi,,加上如下代码即可实现背包简易功能(两个物品互换位置,拖拽到别的框里,拖...
NGUI下创建几个Sprite图片,作为盛放物品的格子,并命名为Sprite。在其中的一个格子里创建四个Sprite,并命名Wupin_Baoxiang,,,作为物品,,,记得在每个框和物体都加上Box Collicer,,并且为边框加上Iskuang的标签,物品身上加上标签IsWuTi,,加上如下代码即可实现背包简易功能(两个物品互换位置,拖拽到别的框里,拖拽到非框区域回到原来的位置)
-
using UnityEngine;
-
using System.Collections;
-
public class BeiBao : UIDragDropItem
-
{
-
-
-
protected override void OnDragDropRelease(GameObject surface)
-
{
-
base.OnDragDropRelease(surface);
-
-
-
//获取当前物体的父对象位置
-
Transform myparent = this.transform.parent;
-
-
if (surface.tag == "IsKuang") //如果是框就存进去
-
{
-
//改变父对象并且本地坐标重置为零
-
this.transform.parent = surface.transform;
-
this.transform.localPosition = Vector3.zero;
-
-
}
-
else if(surface.tag == "IsWuTi") //如果是物体就交换位置
-
{
-
//声明一个变量,把B的父级存起来
-
Transform parent = surface.transform.parent;
-
//B的父级换成了A的父级 并且相对位置重置为零
-
surface.transform.parent = myparent;
-
surface.transform.localPosition = Vector3.zero;
-
-
//与上同理 A - B
-
this.transform.parent = parent;
-
this.transform.localPosition = Vector3.zero;
-
}
-
else
-
{
-
//其他情况 就返回原来的地方
-
this.transform.parent = myparent;
-
this.transform.localPosition = Vector3.zero;
-
//Debug.Log(surface.name);
-
-
}
-
}
-
}
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/77775897
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)