UGUI_UI子节点在Canvas的2D坐标
来源:互联网 发布:环球数码 知乎 编辑:程序博客网 时间:2024/06/03 21:27
首先我们要搞清楚 transform.postion 和 rectTransform.anchoredPosition 这两个坐标是完全不一样的。前面的是3D坐标,后面的是2D在Rect里的坐标,并且还是相对坐标,那么节点深了坐标就更不好换算了。
C#
1
2
3
4
5
6
7
8
9
public Canvas canvas;
void Start(){
Vector2 pos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, transform.position, canvas.camera, out pos)){
Debug.Log(pos);
}
}
所以上述代码就是用UI元素的世界坐标和canvas的RectTrasform再加上UI摄像机,换算出元素在Canvas的2D坐标。
最后在想需要赋值的UI 用 rectTransform.anchoredPosition = pos 就可以了。。
怎么通过鼠标的坐标在屏幕上移动来更新UI的显示位置。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
Canvas canvas;
RectTransform rectTransform;
// Use this for initialization
void Start ()
{
rectTransform = transform as RectTransform;
canvas = GameObject.Find("Canvas").GetComponent<Canvas>();
}
// Update is called once per frame
void Update () {
Vector2 pos;
if(RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out pos)){
rectTransform.anchoredPosition = pos;
}
}
}
- UGUI_UI子节点在Canvas的2D坐标
- 获取UGUI子节点在Canvas的屏幕坐标
- Unity 计算子节点的世界坐标
- UGUI_UI的深度学习
- 2D游戏获得子节点的最小最大位置
- {Unity} 2D游戏,Canvas转世界坐标
- d-heap的子节点与父节点关系
- Canvas坐标的坑
- OGRE的2D坐标、CEGUI坐标、鼠标坐标
- OGRE的2D坐标、CEGUI坐标、鼠标坐标
- 【实例】【html5】在canvas获取鼠标的坐标
- OGRE的2D坐标、CEGUI坐标、鼠标坐标、 世界坐标转屏幕坐标
- OGRE的2D坐标、CEGUI坐标、鼠标坐标、 世界坐标转屏幕坐标
- html获取鼠标在页面的坐标以及在canvas上的坐标
- 解决在canvas获取的坐标和窗口的坐标一样的问题
- TextureCoordinate3D纹理3D坐标节点
- TextureCoordinate4D纹理4D坐标节点
- TextureTransform3D纹理坐标3D变换节点
- 从零开始springBoot
- hibernate访问postgreSQL的搭建过程
- 【C#学习】接口 Interface
- 关于烂代码的那些事 ( 下 )
- sql练习题
- UGUI_UI子节点在Canvas的2D坐标
- SQL注入
- Java:集合框架(三)Set详解及代码示例
- 自适应阈值分割—大津法(OTSU算法)C++实现
- BZOJ1264: [AHOI2006]基因匹配Match
- UGUI_UGUI事件系统简述及使用方法总结
- 实现多线程的两种方式
- Zabbix监控windows系统
- C 强制类型转换