Unity UGUI怎么样获得UI在屏幕上的位置坐标

Unity UGUI怎么样获得UI在屏幕上的位置坐标,第1张

直接用WorldToScreenPoint方法[csharp] view plain copypublic Camera mycamera;//要转化到的目的摄像机,通常canvas在这个摄像机下(即canvas的render mode设置为这个摄像机)  Image kongjian;//自己要获取屏幕坐标控件,可以是image,也可以是button等等  float x=mycameraWorldToScreenPoint(kongjiantransformposition)x;  float y=mycameraWorldToScreenPoint(kongjiantransformposition)y;  //x,y即为控件在屏幕的坐标cameraWorldToScreenPoint()方法返回的是一个position类型 是vector3类型,camera为要转化到的目标摄像机,传入的参数为控件的世界坐标  以下会发现得到的值不尽如人意,原因在于,这些

GetComponent<RectTransform>()sizeDelta

或者GetComponent<RectTransform>()rectsize

GetComponent<RectTransform>()sizeDelta

或者GetComponent<RectTransform>()rectsize

方法得到的宽高受到(相对于父物体)锚点的影响,所以楼主自行测试一下就会得到自己想要的答案

按钮在屏幕的坐标位置,或是相对父控件的坐标位置,,用于判断d出窗口左上角的位置(left,top)private void Button1_Click(object sender, RoutedEventArgs e){var gt = Button1TransformToVisual(null);

PS

新建一个文件,和你的屏幕尺寸一样大

然后按F键,使之全屏(可能要多按几次)

按F8,信息面面版中XY就是坐标

你在网页面,用鼠标指着某个点,不动

按ALT+TAB键,切换到PS,就会得到一个坐标。

Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long '全屏坐标声明

Private Declare Function ScreenToClient Lib "user32dll" (ByVal hwnd As Int32, ByRef lpPoint As POINTAPI) As Int32 '窗口坐标声明

Private Structure POINTAPI '声明坐标变量

Public x As Int32 '声明坐标变量为32位

Public y As Int32 '声明坐标变量为32位

End Structure

'以上是声明部分

'以下是窗口部分

Private Sub Timer1_Tick(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Timer1Tick '用时钟控件来取坐标,窗口上放个Timer组件,Enabled为允许,周期为10到100毫秒均可

Dim P As POINTAPI '声明坐标变量

Dim xx, yy '声明转换要用到的变量

GetCursorPos(P) '获取鼠标在屏幕中的位置

ScreenToClient(MeHandleToInt32, P) '转换为本窗体的坐标

xx = PxToString '把X转换成能显示到文本框的字符串格式

yy = PyToString '把Y转换成能显示到文本框的字符串格式

TextBox1Text = xx + "和" + yy '文本框的内容为X坐标和Y坐标

End Sub

c#的方式

private void CaptureJpeg()

{

var catchBmp = new Bitmap(pictureBox1Width, pictureBox1Height);

var g = GraphicsFromImage(catchBmp);

//转换成控件在屏幕上的坐标

var screenPoint = PointToScreen(pictureBox1Location);

//拷贝屏幕区域到Bitmap

gCopyFromScreen(screenPoint, new Point(0, 0), new Size(pictureBox1Width, pictureBox1Height));

//存文件

catchBmpSave(stringFormat(@"D:\image\{0}jpg",MAC));

}

以上就是关于Unity UGUI怎么样获得UI在屏幕上的位置坐标全部的内容,包括:Unity UGUI怎么样获得UI在屏幕上的位置坐标、Silverlight如何获取控件的屏幕坐标位置、如何获取屏幕上的一点的坐标,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9788654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存