Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)

這篇文章主要為大家展示了“Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)”這篇文章吧。

創(chuàng)新互聯(lián)專注于呼倫貝爾網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供呼倫貝爾營銷型網(wǎng)站建設(shè),呼倫貝爾網(wǎng)站制作、呼倫貝爾網(wǎng)頁設(shè)計、呼倫貝爾網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造呼倫貝爾網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供呼倫貝爾網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

0.前言

實際開發(fā)中,我們經(jīng)常會遇到需要3D與2D坐標(biāo)轉(zhuǎn)換的問題,比如血條同步跟隨人物移動、傷害數(shù)字在人物頭上出現(xiàn)、從2D背包中拖動一個UI到3D物體上等情況,這些其實本質(zhì)上都是3D坐標(biāo)與UI坐標(biāo)轉(zhuǎn)換的問題。

1.核心思想

3D坐標(biāo)轉(zhuǎn)成UI坐標(biāo)其實就是先轉(zhuǎn)成屏幕坐標(biāo),再由屏幕坐標(biāo)轉(zhuǎn)換成UI坐標(biāo)。

所以坐標(biāo)轉(zhuǎn)換分為三個部分

  • 3D坐標(biāo)

  • 屏幕坐標(biāo)

  • UI坐標(biāo)

其中Unity的屏幕坐標(biāo)系規(guī)定,左下角是原點,X軸向右是正方向,Y軸向上是正方向。

作為額外補充的一個知識點,GUI的坐標(biāo)系規(guī)定左上角是原點,X軸向右為正方向,Y軸向下為正方向,跟屏幕坐標(biāo)是不一樣的,但是此篇我們用不到這個知識點。

這里UI坐標(biāo)指的是UGUI的坐標(biāo),所以我們在計算的時候就需要用的Canvas相關(guān)的參數(shù)

2.代碼示例

在此以血條跟隨人物移動為需求,完成坐標(biāo)轉(zhuǎn)換的核心代碼

using UnityEngine;
public class HPFollow : MonoBehaviour{    // 人物頭頂    public Transform heroHeadTrans;        // 攝像機,不使用Camera.main是因為性能消耗比較大    public Camera mainCamera;
   // 血條    public RectTransform hpTrans;
   // Canvas    public RectTransform canvasTrans;
   // Update is called once per frame    void Update()    {        // 先將3D坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo)        Vector2 screenPoint = RectTransformUtility.WorldToScreenPoint(mainCamera, heroHeadTrans.position);
       // 再將屏幕坐標(biāo)轉(zhuǎn)換成UGUI坐標(biāo)        Vector2 localPoint;
       if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasTrans, screenPoint, mainCamera, out localPoint))        {            hpTrans.anchoredPosition = localPoint;        }    }}

別忘了修改Canvas的RenderMode

Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)

以上是“Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站欄目:Unity中如何實現(xiàn)3D坐標(biāo)轉(zhuǎn)換UGUI坐標(biāo)
文章來源:http://muchs.cn/article12/pgdedc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站維護、網(wǎng)站建設(shè)、軟件開發(fā)、搜索引擎優(yōu)化手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)