Unity3D UGUI组件跟随鼠标运动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D UGUI组件跟随鼠标运动相关的知识,希望对你有一定的参考价值。

参考技术A 因项目的需求,在制作中需要让UGUI中的组件,追随鼠标的运动轨迹。由于个人在以前使用中对于UGUI的坐标系了解不深,在使用中产生了一些问题,在此对UGUI的坐标系做一个简单的记录,以备后面查询。

Unity3D 采用Input.mousePosition来获取当前鼠标的位置,获取的位置是相对于屏幕坐标系的,而UGUI使用的坐标系和屏幕坐标系不是同一个坐标系,
在UGUI中组件使用的坐标都是2D在Rect中的一个相对坐标,所以在实际使用中需要进行转换。

<pre>
public class test : MonoBehaviour

public RectTransform myRectTransform; // 目标组件
public Canvas myCanvas; // 当前画布
// Update is called once per frame
void Update ()

Vector2 vT = Vector2.zero;
// 通过此函数,将鼠标坐标,从屏幕坐标,转换到UGUI坐标
RectTransformUtility.ScreenPointToLocalPointInRectangle(myCanvas.transform as RectTransform, Input.mousePosition, myCanvas.worldCamera, out vT);
myRectTransform.localPosition = vT;


</pre>
#######附带一说,在Unity3D中可以使用函数Screen.showCursor(老版本)、UnityEngine.Cursor.visible来显示和隐藏鼠标

以上是关于Unity3D UGUI组件跟随鼠标运动的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D摇杆

unity3d的UGUI如何制作一个提示框?就是鼠标放上去会显示提示信息,最好用自带的UI系统

Unity3d中UGUI组件精简复盘Canvas及其相关组件

Unity3D之UGUI:Rect Transform与Anchor

Unity3d中UGUI组件精简复盘RectTransform组件

Unity3d中UGUI组件精简复盘Selectable基类