UIは、3Dキャラクターに従ってください

UIは、3Dキャラクターに従ってください

文字ヘルスバーやダイアログボックス

UIの2次元座標に文字座標を変換する方法

3Dキャラクターを追跡する必要性にマウントするUI_Followスクリプトを
相殺するオフセット
UIをフォローするrectTransformの必要性を

以下の3D文字にUIなし、モードモードをレンダリングキャンバスを調整することなく、共通のUIを作成します。

public class UI_Follow : MonoBehaviour {

    /// <summary>
    /// 偏移量
    /// </summary>
    public Vector2 offset;

    /// <summary>
    /// 人物头顶标识
    /// </summary>
    public RectTransform rectTransform;

    void Update()
    {
        FollowPlayer();
    }

    /// <summary>
    /// UI跟随人物
    /// </summary>
    void FollowPlayer()
    {
        if (rectTransform == null) return;
        Vector2 screenPos = Camera.main.WorldToScreenPoint(transform.position);
        rectTransform.position = screenPos + new Vector2(offset.x, offset.y);
        if (screenPos.x > Screen.width || screenPos.x < 0 || screenPos.y > Screen.height || screenPos.y < 0) rectTransform.gameObject.SetActive(false);
        else rectTransform.gameObject.SetActive(true);
	}
}
第二に、第二の方法は、モードの世界空間方法に変更レンダリングキャンバスを描画します

UIは、以下の3Dキャラクターを作成します。

現在のUIやキャンバス上のスクリプトを作成し、Update関数書かLookA

// Update is called once per frame
	void Update () {
        transform.LookAt(Camera.main.transform);
	}
公開された62元の記事 ウォンの賞賛5 ビュー3914

おすすめ

転載: blog.csdn.net/qq_42194657/article/details/103618243