UGUI UI拖拽,UI连线。
2024-10-21 12:44:37
1、拖拽
public class Item : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{ public RectTransform rt;
public void OnBeginDrag(PointerEventData eventData)
{
//RectTransformUtility.ScreenPointToLocalPointInRectangle(btn.GetComponent<RectTransform>(), eventData.position, Camera.main, null);
} public void OnDrag(PointerEventData eventData)
{
Vector3 globalMousePos; if (RectTransformUtility.ScreenPointToWorldPointInRectangle(rt, eventData.position, null, out globalMousePos))
{
rt.position = globalMousePos;
}
} public void OnEndDrag(PointerEventData eventData)
{ } /// <summary>
/// 更新UI的位置
/// </summary>
private void SetDraggedPosition(PointerEventData eventData)
{
Vector3 globalMousePos; if (RectTransformUtility.ScreenPointToWorldPointInRectangle(rt, eventData.position, null, out globalMousePos))
{
rt.position = globalMousePos;
} }
}
2、连线
private void Init(Transform mParent, Transform mChild)
{
Vector3 targetPos = mParent.localPosition;
Vector3 curPos = mChild.localPosition;
line.rectTransform.sizeDelta = new Vector2(8, Vector3.Distance(targetPos, curPos)); double angle = Math.Atan2(targetPos.y - curPos.y, targetPos.x - curPos.x) * 180 / Math.PI;
line.transform.rotation = Quaternion.Euler(0, 0, (float)angle + 270);
line.transform.localPosition = new Vector3((targetPos.x + curPos.x) / 2, (targetPos.y + curPos.y) / 2, targetPos.z);
}
最新文章
- 账号控管:NIS服务器
- JavaScript concat() 方法-连接两个或多个数组
- Mysql 排名查询
- IOS第四天(6:答题区按钮点击和乱序)
- TOMCAT源码分析(启动框架)
- [转]Reed Solomon纠删码
- PAT IO-04 混合类型数据格式化输入(5)
- python3实现的web端json通信协议
- loading图片制作(没有设计师的情况下,前端同学自己制作loading动图)
- Hello BlogsPark
- [知了堂学习笔记]_eclipse引入svn插件,并将项目同步到svn
- 折线图hellocharts的使用说明
- 一次电话Java面试的问题总结(JDK8新特性、哈希冲突、HashMap原理、线程安全、Linux查询命令、Hadoop节点)
- idea 创建的spingmvc 引入jquery后jquery函数始终不执行的原因
- React child
- 在Linux上安装Elasticsearch Head工具.md
- 【SQL】from a,b。表a 和b之间是什么关系?
- Spring cloud的Maven插件(二):run目标
- jQuery----each()方法
- AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks