Unity笔记之-----简单的背包切换
来源:互联网 发布:java安装在d盘教程 编辑:程序博客网 时间:2024/06/14 08:07
这是一个简单的背包切换,并不涉及太多内容,总共的UI界面就一个,切换的实质是通过这是UI的激活状态,来显示切换效果
总共就两个脚本
第一个脚本是控制切换item的
public class ChangeItem : MonoBehaviour { [SerializeField] Toggle m_TogItem1; [SerializeField] Toggle m_TogItem2; [SerializeField] Toggle m_TogItem3; [SerializeField] GameObject m_Item1Img; [SerializeField] GameObject m_Item2Img; [SerializeField] GameObject m_Item3Img; [SerializeField] GameObject m_ImageItem1BG; [SerializeField] GameObject m_ImageItem2BG; [SerializeField] GameObject m_ImageItem3BG; void Start () { m_TogItem1.onValueChanged.AddListener(OnItem1); m_TogItem2.onValueChanged.AddListener(OnItem2); m_TogItem3.onValueChanged.AddListener(OnItem3); } private void OnItem1(bool arg0) { if (arg0) { m_Item1Img.SetActive(true); m_ImageItem1BG.SetActive(true); m_Item2Img.SetActive(false); m_ImageItem2BG.SetActive(false); m_Item3Img.SetActive(false); m_ImageItem3BG.SetActive(false); } } private void OnItem2(bool arg0) { if (arg0) { m_Item1Img.SetActive(false); m_ImageItem1BG.SetActive(false); m_Item2Img.SetActive(true); m_ImageItem2BG.SetActive(true); m_Item3Img.SetActive(false); m_ImageItem3BG.SetActive(false); } } private void OnItem3(bool arg0) { if (arg0) { m_Item1Img.SetActive(false); m_ImageItem1BG.SetActive(false); m_Item2Img.SetActive(false); m_ImageItem2BG.SetActive(false); m_Item3Img.SetActive(true); m_ImageItem3BG.SetActive(true); } } void Update () { }}
第二个脚本是控制切换背包里面物体的位置的
using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.EventSystems;using System;public class SimplePackageChange : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler{ Vector3 m_Offest; Image m_Image; Transform m_DragParent; Transform m_OriginalTran; private void Awake() { m_Image = GetComponent<Image>(); m_DragParent = GameObject.Find("pan_Item").transform; } public void OnBeginDrag(PointerEventData eventData) { m_OriginalTran = transform.parent; m_Offest = Input.mousePosition - transform.position; //m_DragParent = transform.root; } public void OnDrag(PointerEventData eventData) { transform.position = Input.mousePosition - m_Offest; //当拖动的时候把射线检测关闭,到时候就可以检测图片底下的ui m_Image.raycastTarget = false; transform.parent = m_DragParent; } public void OnEndDrag(PointerEventData eventData) { m_Image.raycastTarget = true; //拖拽完之后要把射线检测打开,不然拖动的时候检测不了这个物体 if (eventData.pointerEnter.tag == "ItemImages") { //如果检测到的是槽位 transform.parent = eventData.pointerEnter.transform; transform.position = eventData.pointerEnter.transform.position; } else if (eventData.pointerEnter.tag == "DragItem") { // 如果检测到的是有装备 transform.parent = eventData.pointerEnter.transform.parent; transform.position = eventData.pointerEnter.transform.position; eventData.pointerEnter.transform.parent = m_OriginalTran; eventData.pointerEnter.transform.position = m_OriginalTran.position; } else if (eventData.pointerEnter.name == "pan_Item") { // 如果检测到的是背包pannel的背景 transform.parent = m_OriginalTran; transform.position = m_OriginalTran.position; } else { // 如果在UI边界之外 Destroy(gameObject); } }}
阅读全文
0 0
- Unity笔记之-----简单的背包切换
- unity实现简单的摄像机切换
- Unity简单的声音切换渐变实现
- unity 场景 切换 笔记
- UNITY之背包管理
- unity之切换显示
- unity之简单的对话框
- 【Unity随笔】Unity之ugui简单背包实现与Json读取物品信息
- 【Unity随笔】Unity之ugui简单背包实现与Json读取物品信息
- unity学习之背包系统
- unity摄像机的切换
- unity材质的切换
- Unity Shader学习笔记:简单的shader
- 【Unity】Unity中xml的简单用法笔记
- android+unity游戏开发基础之场景的切换
- android+unity游戏开发基础之场景的切换
- DP背包之01背包、完全背包、多重背包笔记
- Unity编程笔记----多语言切换
- 编译并裁剪boost1.65
- 连接数据库实现登录(3)
- 程序员总结:帮助你早些明白一些道理
- Huffman文件压缩之文件夹压缩
- Judge Route Circle
- Unity笔记之-----简单的背包切换
- java实现的最小编辑距离
- LeetCode | 71. Simplify Path
- mysql添加用户
- 长安汽车悦翔V7中控台GPS导航密码
- 关于获取网络图片问题
- HDU 3790 最短路径问题
- char*str与char str[]
- Windows下好用的终端程序ConEmu