最近做一個UGUI的血條功能,期間嘗試過幾種方法。也查了好多資料。在自己寫的demo中,運(yùn)行啥的一切正常,在自己項(xiàng)目中就會出現(xiàn)一些坐標(biāo)偏移 視覺偏差??偨Y(jié)幾點(diǎn)原因:ui相機(jī)的設(shè)置問題, 目標(biāo)物體血條掛點(diǎn)位置
下面介紹項(xiàng)目中用的方法
首先創(chuàng)建兩個Cube

然后創(chuàng)建Canvas 并創(chuàng)建UICamera 以及Scrollbar

Canvas設(shè)置

需要將RenderMode 設(shè)置成Screen Space-Camera 并且拖入ui相機(jī)
UICamera設(shè)置

然后就是寫腳本控制了核心代碼很簡單 就幾行
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)用過程中 我是遇到血條跟角色偏移點(diǎn)比較大。最后找到原因是掛點(diǎn)問題
提示 這個做法是不支持血條近大遠(yuǎn)小的功能