在Unity VR中查看GameObject时显示文本

时间:2018-08-16 18:16:14

标签: user-interface unity3d virtual-reality

我正在尝试使用Google VR资产来实现统一,这很容易,我已经在项目中构建了大部分内容。

我只有一个问题,我找不到一种向播放器显示文本的方法...

在我的项目中,用户在模型周围走动,当他查看模型的特定部分时,会弹出一个包含适当信息的窗口。

我尝试使用OnGui函数,但无济于事...

您是否知道该怎么做?

1 个答案:

答案 0 :(得分:1)

您必须使用世界空间画布或3D文本。您可能还需要一些广告牌(面向用户的文字)。

我经常为此使用此帮助程序(只需将其拖动到新的游戏对象上即可):

using UnityEngine;

[RequireComponent(typeof(TextMesh))]
[RequireComponent(typeof(MeshRenderer))]
[ExecuteInEditMode]
public class Billboarded3dText : MonoBehaviour {

    public bool yawOnly = false;
    public float minimalViewDistance = 0.5f;

    private MeshRenderer meshRenderer;
    private TextMesh textMesh;


    private void OnEnable()
    {
        meshRenderer = GetComponent<MeshRenderer>();
        textMesh = GetComponent<TextMesh>();
    }


    private void LateUpdate()
    {
        var cam = Camera.main;
        if (cam == null) return;

        var lookDir = transform.position - cam.transform.position;
        if (yawOnly) lookDir.y = 0;

        if(Vector3.SqrMagnitude(lookDir) < minimalViewDistance)
        {
            meshRenderer.enabled = false;
        }
        else
        {
            meshRenderer.enabled = true;
            transform.rotation = Quaternion.LookRotation(lookDir);
        }
    }


}