UGUI图片拖拽_保留原图
需求:
因为同一个公式,需要拖到四个位置,如果不保留原图,往第二个位置拖时,就没的拖了
解决:
在拖动的开始,新建一个替代品
以下是我参照“船到桥头自然沉”兄弟的脚本写的
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;public class UGUIForDrag : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler, IDropHandler
{//创建一个Gameobject作为拖拽时被拖拽对象的代替品private GameObject drag_icon;//该物体是否可以进行拖拽public bool isCanDrug;//匹配信息public string matching;/// <summary>/// 拖拽时为新生成的拖拽图片进行位置更新/// </summary>/// <param name="eventData"></param>public void OnDrag(PointerEventData eventData){if (!isCanDrug) return;//并将拖拽时的坐标给予被拖拽对象的代替品Vector3 pos;if (RectTransformUtility.ScreenPointToWorldPointInRectangle(drag_icon.GetComponent<RectTransform>(), eventData.position, eventData.pressEventCamera, out pos)){drag_icon.transform.position = pos;//drag_icon.transform.localScale = new Vector3(1,1,1) ;}}/// <summary>/// 拖拽图片初始/// </summary>/// <param name="eventData"></param>public void OnBeginDrag(PointerEventData eventData){if (!isCanDrug) return;//代替品实例化drag_icon = new GameObject("icon");drag_icon.transform.SetParent(GameObject.Find("Canvas").transform, false);drag_icon.AddComponent<RectTransform>();var img = drag_icon.AddComponent<Image>();img.sprite = this.GetComponent<Image>().sprite;drag_icon.transform.GetComponent<RectTransform>().sizeDelta = new Vector2(60.8F, 43.8F);//如果不设置尺寸,生成的替代品尺寸,和原图不一样//防止拖拽结束时,代替品挡住了准备覆盖的对象而使得 OnDrop() 无效CanvasGroup group = drag_icon.AddComponent<CanvasGroup>();group.blocksRaycasts = false;}/// <summary>/// 拖拽结束/// </summary>/// <param name="eventData"></param>public void OnEndDrag(PointerEventData eventData){if(drag_icon.transform.localPosition.y>= -32 && drag_icon.transform.localPosition.y <=21){drag_icon.transform.localPosition = new Vector3(54,-8,0);}else if(drag_icon.transform.localPosition.y >=-130&& drag_icon.transform.localPosition.y <=-81){drag_icon.transform.localPosition = new Vector3(54,-104,0);}else if (drag_icon.transform.localPosition.y >= -235 && drag_icon.transform.localPosition.y <=-117){drag_icon.transform.localPosition = new Vector3(54,-207,0);}else if (drag_icon.transform.localPosition.y >=-338&& drag_icon.transform.localPosition.y <=-283){drag_icon.transform.localPosition = new Vector3(54,-310,0);}else//拖拽结束,销毁代替品{Destroy(drag_icon);}}/// <summary>/// 拖拽到当前图片上/// </summary>/// <param name="eventData"></param>public void OnDrop(PointerEventData eventData){//根据代替品的信息,改变当前对象的Sprite。var obj = eventData.pointerDrag;UGUIForDrag drag = obj.GetComponent<UGUIForDrag>();//检测拖拽物品是否是可拖拽的 if (drag != null){if (!drag.isCanDrug){return;}}//信息匹配if (IsSameMessage(drag)){Debug.Log("信息匹配成功");}else{Debug.Log("信息匹配失败");return;}this.GetComponent<Image>().sprite = obj.GetComponent<Image>().sprite;}/// <summary>/// 信息匹配/// </summary>/// <param name="message"></param>/// <returns></returns>bool IsSameMessage(UGUIForDrag message){if (message.matching == matching)return true;elsereturn false;}
}
UGUI图片拖拽_保留原图相关推荐
- 安卓开发仿微信图片拖拽_仿微信朋友圈发表图片拖拽和删除功能
原标题:仿微信朋友圈发表图片拖拽和删除功能 中国联通在香港公布了上市公司2017年中期业绩.2017年上半年,公司主要业绩指标持续向好,收入稳步回升,服务收入达到人民币1,241.1亿元,同比增长3. ...
- 安卓开发仿微信图片拖拽_使用Android 模仿微信朋友圈图片拖拽返回
1概述 目前的app的动画效果是越来越炫了,很多主流app的图片预览返回都有类似功能,比较常见的是ios自带相册,微信朋友圈等等.自己项目中也有类似功能,最近整理了一下这个功能的代码,做个笔记记录,有 ...
- android可拖拽九宫格,微信小程序实现九宫格图片拖拽
(在真机上的效果就不演示了,是差不多的) 实现思路 布局 在这里运用到了微信小程序的moveable-area和moveable-view两个标签. moveable-area是可拖拽的区域,需要设置 ...
- html设置图片不可拖拽,js css3实现图片拖拽效果
本文实例为大家分享了css3实现图片拖拽效果的具体代码,供大家参考,具体内容如下 body{ text-align: center; } .container{ display: flex; just ...
- html js点击字图片下拉,JavaScript实现文字与图片拖拽效果的方法
本文实例讲述了JavaScript实现文字与图片拖拽效果的方法.分享给大家供大家参考.具体实现方法如下: JavaScript实现文字与图片的拖拽效果 *{padding:0;margin:0;} . ...
- 使用jQuery开发一个基于HTML5的漂亮图片拖拽上传web应用
昨天我们介绍了一款HTML5文件上传的jQuery插件:jQuery HTML5 uploader,今天我们将开发一个简单的叫upload center的图片上传程序,允许用户使用拖拽方式来上传电脑上 ...
- 安卓开发仿微信图片拖拽_Android 仿微信朋友圈发表图片拖拽和删除功能
朋友圈实现原理 我们使用 Android Device Monitor 来分析朋友圈发布图片的界面实现原理.如果需要分析其他应用的界面实现也是采用这种方法哦. 打开 Android Device Mo ...
- Android 仿微信朋友圈发表图片拖拽和删除功能
朋友圈实现原理 我们使用 Android Device Monitor 来分析朋友圈发布图片的界面实现原理.如果需要分析其他应用的界面实现也是采用这种方法哦. 打开 Android Device Mo ...
- 类似新浪微博和google图片的HTML5实现图片拖拽上传功能
2019独角兽企业重金招聘Python工程师标准>>> 来源: http://www.lovesunlife.com/?p=315 这篇文章对google图片为蓝本就拖拽上传功能分析 ...
最新文章
- Linux shell 学习笔记(8)— 使用结构化命令(if-then 语句、数值比较、字符串比较、文件比较、case 语句)
- JDK11使用IDEA,配置JavaFX
- 【干货】一个产品经理眼中的云计算:前生今世和未来
- 读入两个字符串java_编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数...
- Docker ElK安装部署使用教程
- Form_Form Builder Export导出为Excel(案例)
- 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(二)
- 利用xsl和xml转html没有内容_HTML文档元素的属性介绍
- php sql 中文编码,php sql如何设置编码
- jwt如何加盐_JWT 基础教程
- 国科大杨力祥老师操作系统答案总结
- 分布式计算、统计学习与ADMM算法
- xtwpro2编程器_zadig v2.4编程软件下载|XTW100编程器软件(附USB驱动) - 驱动无忧
- Python游戏篇:细节之大型游戏爆炸效果(附代码)
- 【VirtualAPP 双开系列06】启动加载第三方 APP 过程
- HTTP代理服务器的实现
- debian11安装aria2以及ariaNg
- 最易/难学习的编程语言榜单出炉,C++最难学?
- MySQL8.0.27版本于2021年10月19日正式GA和新功能介绍
- 基于对抗训练的轨迹预测半监督算法(美国西北大学和加州尔湾分校)
热门文章
- Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法
- GCN数据集Cora、Citeseer、Pubmed文件分析
- Android开发资源分享合集
- 计算机ps作品大赛奖品,全国创新杯说课大赛计算机应用基础类一等奖作品:ps动态图像制作说课课件...
- react-native app:compileDebugJavaWithJavac错误解决
- python求函数的根_在Python中寻找函数的根
- dom4j中文API
- wincc 7.4 安装时 SQL 2014 报错,无法继续安装
- Excel收纳箱:返回选中区域的行数和列数
- IOS- 即时通讯原理,使用XMPPFramework实现即时通信