注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

unity 原生UI 拖拽跟随鼠标移动  

2016-06-08 13:15:21|  分类: unity3d |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

unity 中拖拽某个UI移动时,例如是image类型的UI,要想实现图片跟随着鼠标移动需要以下操作:

首先我们要在鼠标按下时保存鼠标按下的位置,记录要移动物体的初始位置

if(Input.GetMouseButtonDown(0))
{


vec3 = Input.mousePosition;
pos = transform.GetComponent<RectTransform>().position;

}

其次我们要在鼠标移动时求出鼠标的位移的偏移量是多少,这里用off来保存,ve3来刷新记录鼠标的移动位置

用pos加上每次帧鼠标的偏移量,最后在把pos获得的移动值赋值给要移动的物体
if(Input.GetMouseButton(0))
{
Vector3 off = Input.mousePosition - vec3;
vec3 = Input.mousePosition;
pos = pos + off;
transform.GetComponent<RectTransform>().position = pos;
}

以上只是通过鼠标的状态来控制物体的移动。

我们还可以结合UI系统提供的事件来控制物体的移动

例如,我们给panel添加一个EventTrigger组件,分别添加Drag 和pointerDown两个事件

分别绑定触发的方法为MoveObject(),PointerDown();

查看图片

public void MoveObject()
{


Vector3 off = Input.mousePosition - vec3;
vec3 = Input.mousePosition;
pos = pos + off;
transform.GetComponent<RectTransform>().position = pos;

}
public void PointerDown()
{
vec3 = Input.mousePosition;
pos = transform.GetComponent<RectTransform>().position;

}

这样就可以用鼠标拖动UI系统的panel了

Unity_制作小地图——利用遮挡
制作类RPG游戏时,可能会需要显示小地图。小地图的制作一种方式是用另一个摄像机来渲染到一张纹理上,实时显示到UI界面。以Unity5.0的UI系统为例:

  评论这张
 
阅读(111)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017