在Unity上使用World Space UI?

时间:2018-08-18 21:46:24

标签: c# unity3d

我正在尝试开发一个“动态”世界空间用户界面,当我与一些对象进行交互时,该界面将显示在屏幕上,主要是图像,例如:

Triangle Button example 1

Triangle Button example 2

我做了这个(下图),但是问题是它取决于玩家的距离,太远的图像很小,太近的图像很大,我知道这是因为图像是一个进入世界空间的对象。但是我想知道实现此目的的正确方法,就像我上面发布的示例一样。

void WorldButton()
{
    // canvas in worldspace mode is attached to a gamobject
    worldButton.SetActive(true); 
    Vector3 direction = worldButton.transform.position - cam.transform.position;
    worldButton.transform.rotation = Quaternion.LookRotation(direction);
}

1 个答案:

答案 0 :(得分:2)

确定这些用户使用屏幕空间用户界面并使用https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html放置画布