U3D 如何计算一个UI四个角的绝对坐标
生活随笔
收集整理的這篇文章主要介紹了
U3D 如何计算一个UI四个角的绝对坐标
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
U3D 如何計(jì)算一個(gè)UI四個(gè)角的絕對坐標(biāo)
? //方式一,使用API獲取var rtrans = gameObject.GetComponent<RectTransform>();Vector3[] worldcorners = new Vector3[4];rtrans.GetWorldCorners(worldcorners);//方式二,手動(dòng)計(jì)算var cam = GameObject.Find("Camera").GetComponent<Camera>();var cam_h = 2 * cam.orthographicSize;var cam_w = cam_h * Screen.width / Screen.height;var canvasObj = GameObject.Find("Canvas");var canvas = canvasObj.GetComponent<Canvas>();var canvasScaler = canvasObj.GetComponent<CanvasScaler>();float screen_w = Screen.width;float screen_h = Screen.height;var pos = transform.position;var fw = rtrans.rect.width;var fh = rtrans.rect.height;if (canvasScaler.uiScaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize){screen_w = canvasScaler.referenceResolution.x;screen_h = screen_w * Screen.height / Screen.width;}if (canvas.renderMode == RenderMode.ScreenSpaceCamera){fw = rtrans.rect.width / screen_w * cam_w;fh = rtrans.rect.height / screen_h * cam_h;}float[] wcs = new float[4];var c1 = pos.x - fw / 2;var c2 = pos.x + fw / 2;var c3 = pos.y - fh / 2;var c4 = pos.y + fh / 2;//兩種試計(jì)算得到的結(jié)果完全一樣?
posted on 2017-06-26 17:33 時(shí)空觀察者9號(hào) 閱讀(...) 評(píng)論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的U3D 如何计算一个UI四个角的绝对坐标的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: U3D屏幕坐标,世界坐标,像素坐标之间的
- 下一篇: sceneManager.loadsce