using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
*文件描述:
*创始人:
*创建时间:
*修改时间:
*版本:1.0
*/

public class Knapsackltem : UIDragDropItem{
    int count = 1;
    public UILabel numTxt;//预设体上面的文本
    public void Add()//添加物品的数量方法
    {
        count++;//一直累加
        numTxt.text = count.ToString();//赋值给文本
    }

protected override void OnDragDropRelease(GameObject surface)//OnDragDropRelease:拖放,丢弃,释放
    {
        base.OnDragDropRelease(surface);//调用父类的方法
        print(surface);//碰撞的物体

if (surface.CompareTag("GeZi"))
        {
            //物品居中
            transform.parent = surface.transform;//把靴子放到格子里面
            transform.localPosition = Vector3.zero;//把靴子放在格子的正中间
        }
        else if (surface.CompareTag("WuPin"))
        {
            //物品交换
            Transform parent = surface.transform.parent;//护腕的父对象

surface.transform.parent = transform.parent;//把护腕放入靴子下面
            surface.transform.localPosition = Vector3.zero;//护腕居中

transform.parent = parent;//把靴子放入护腕下面
            transform.localPosition = Vector3.zero;//靴子居中
        }
        else
        {
            Destroy(gameObject);
        }
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/*
*文件描述:
*创始人:
*创建时间:
*修改时间:
*版本:1.0
*/

public class MyKnapsack : MonoBehaviour {
    public GameObject[] cells;//格子
    public string[] names;//物品名称
    public GameObject item;//当前物品
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.X))
        {
            PickUp();
        }
    }
    void PickUp()
    {
        int index = Random.Range(0, names.Length);//位置
        string name = names[index];//随机物品图片名称
        for (int i = 0; i < cells.Length; i++)//随机格子
        {
            if (cells[i].transform.childCount == 0)//格子里面没有物品
            {
                GameObject go = NGUITools.AddChild(cells[i], item);//克隆一个物品放到格子里面
                go.transform.GetComponent<UISprite>().spriteName = name;//更换物品名称
                go.transform.localPosition = Vector3.zero;//物品居中
                break;
            }
            else//格子里面有物品
            {
                //找到预设体上面的图片
                UISprite sprite = cells[i].transform.GetChild(0).GetComponent<UISprite>();
                if (sprite.spriteName.Equals(name))
                {
                    sprite.GetComponent<Knapsackltem>().Add();//调用预设体上面的脚本
                    break;
                }
            }
        }
    }
}

NGUI,背包拖拽,以及随机克隆图片知识点相关推荐

  1. 【Unity实现背包拖拽功能 】

    Unity实现背包拖拽功能 可以实现背包拖拽交换位置.合成 等一系列功能的实现 using System; using System.Collections; using System.Collect ...

  2. el-tiptap富文本框拖拽和复制的图片会跳过上传服务器解决方案

    最近在业务上遇到个问题,因为富文本框存在一个漏洞,正常使用菜单栏上面的上传图片,会先传到服务器上,再将服务器返回的地址传给后端接口,但是通过拖拽或者复制的图片,依旧是base64格式,查看官方文档也没 ...

  3. FileReader (三) - 网页拖拽并预显示图片简单实现

    以下是一个很贱很简单的一个 在网页上图拽图片并预显示的demo. 我是从https://developer.mozilla.org/en-US/docs/Web/API/FileReader#Stat ...

  4. html设置图片不可拖拽,js css3实现图片拖拽效果

    本文实例为大家分享了css3实现图片拖拽效果的具体代码,供大家参考,具体内容如下 body{ text-align: center; } .container{ display: flex; just ...

  5. HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动

    关于canvas 的基础知识就不多说了,可以进这个网址学习 http://www.w3school.com.cn/html5/html_5_canvas.asp 对于canvas 和 SVG 其实一开 ...

  6. flutter实现可缩放可拖拽双击放大的图片功能

    ### flutter_drag_scale ``` 可缩放可拖拽的功能,可实现图片或者其他widget的缩放已经拖拽 并支持双击放大的功能 ``` 我们知道官方提供了双击缩放,但是不支持拖拽的功能, ...

  7. HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动

    关于canvas 的基础知识就不多说了,可以进这个网址学习 http://www.w3school.com.cn/html5/html_5_canvas.asp 对于canvas 和 SVG 其实一开 ...

  8. html5带拖拽上传的图片gallary

    改的别人的程序,不能说原创吧,算半个原创 <!DOCTYPE html> <!-- saved from url=(0066)http://enjoyhtml5.com/hackat ...

  9. html5拖拽图片批量ajax无刷新进度上传

    1.前端拖拽图片 之前有篇文章说到HTML5的拖拽(drag.drop,详见:/post/jquery-plugin-1-jquery-drag-and-html5-draggable-api-and ...

最新文章

  1. 多服务器session共享之memcache共享安装和实现篇(apache+php-windows)
  2. 小鑫の日常系列故事(十)——排名次_JAVA
  3. 为了压榨CNN模型,这几年大家都干了什么
  4. colab如何通过<>来直接加入相对应的代码段呢?模块化代码操作,真好
  5. 时间和空间复杂度概述【Java _demo版】
  6. java多线程队列_java多线程消费者生产者模式(BlockingQueue 通过阻塞队列实现)
  7. (转)Java线程:新特征-线程池
  8. 2015蓝桥杯C++A:手链样式(圆排列和环排列)
  9. 图的绝对中心(bzoj 2180: 最小直径生成树)
  10. 利用express启一个server服务
  11. MySQL5.6安装流程(MySQL入门)
  12. 科学计算器java_科学计算器的Java实现
  13. DELMIA软件:机器人固定点焊仿真
  14. 骂百度的人为何那么多
  15. Material Design实战
  16. optuna自动调参框架对lgb的超参进行优化
  17. Linux下安装调试MQTT Mosquitto
  18. Python3 os.mkfifo() 方法、Python3 os.removedirs() 方法
  19. C语言暴力破解偶然在论坛上看到的一个推理题
  20. 如何建立一流的互联网产品研发体系?

热门文章

  1. 什么是指数基金?有哪些特点? 如何购买指数型基金,如何选择指数型基金
  2. linux查看主机名以及更改主机名
  3. CDH中yarn的动态资源池配置
  4. 抖音直播带货没流量?如何解决抖音直播间不进人问题?
  5. oculus rift s_如何设置Oculus Rift并开始玩游戏
  6. 什么样的Team Leader是个优秀的Team Leader?
  7. 配置Linux+Nginx+php环境搭建
  8. vue php 架构目录,Vue.js 目录结构
  9. 移动硬盘或者U盘无法安全弹出?怎么办?
  10. Mellotron记录