最近做一個(gè)UGUI的血條功能,期間嘗試過(guò)幾種方法荷荤。也查了好多資料。在自己寫的demo中导绷,運(yùn)行啥的一切正常犀勒,在自己項(xiàng)目中就會(huì)出現(xiàn)一些坐標(biāo)偏移 視覺偏差⊥浊總結(jié)幾點(diǎn)原因:ui相機(jī)的設(shè)置問(wèn)題贾费, 目標(biāo)物體血條掛點(diǎn)位置
下面介紹項(xiàng)目中用的方法
首先創(chuàng)建兩個(gè)Cube
然后創(chuàng)建Canvas 并創(chuàng)建UICamera 以及Scrollbar
Canvas設(shè)置
需要將RenderMode 設(shè)置成Screen Space-Camera 并且拖入ui相機(jī)
UICamera設(shè)置
然后就是寫腳本控制了核心代碼很簡(jiǎn)單 就幾行
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HudToUI : MonoBehaviour
{
? ? //角色的血條
? ? public Transform UI;
? ? //血條的掛點(diǎn)
? ? public Transform Head;
? ? public Camera UICamera;
? ? void Update()
? ? {
? ? ? ? Vector3 ws = Camera.main.WorldToScreenPoint(Head.position);
? ? ? ? Vector2 sw = UICamera.ScreenToWorldPoint(ws);
? ? ? ? UI.position = sw;
? ? }
}
最后給player掛上腳本 以及設(shè)置掛點(diǎn) ui相機(jī)。在應(yīng)用過(guò)程中 我是遇到血條跟角色偏移點(diǎn)比較大檐盟。最后找到原因是掛點(diǎn)問(wèn)題
提示 這個(gè)做法是不支持血條近大遠(yuǎn)小的功能