我正在尝试开发一个“动态”世界空间用户界面,当我与一些对象进行交互时,该界面将显示在屏幕上,主要是图像,例如:
我做了这个(下图),但是问题是它取决于玩家的距离,太远的图像很小,太近的图像很大,我知道这是因为图像是一个进入世界空间的对象。但是我想知道实现此目的的正确方法,就像我上面发布的示例一样。
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);
}
答案 0 :(得分:2)
确定这些用户使用屏幕空间用户界面并使用https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html放置画布