使用AR Unity在运行时在屏幕中心显示GameObject

时间:2016-07-05 03:16:48

标签: c# unity3d

如何在运行时将GameObject放置在屏幕中心。我当前的GameObject位于屏幕的左侧,我希望它位于屏幕中间。

enter image description here

1 个答案:

答案 0 :(得分:0)

使用Camera.ViewportToWorldPoint获取屏幕的中心位置。将0.5传递到此功能的xy轴。使用Camera.nearClipPlane +yourCustomOffset作为z轴,以确保将GameObject放置在实际可见的位置。

void centerGameObject(GameObject gameOBJToCenter, Camera cameraToCenterOBjectTo, float zOffset = 2.6f)
{
    gameOBJToCenter.transform.position = cameraToCenterOBjectTo.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, cameraToCenterOBjectTo.nearClipPlane + zOffset));
}

然后你可以用

来调用它
centerGameObject(yourGameObject, Camera.main);

默认zOffset(2.5f)应该可以使用,但您可以通过提供第三个参数来更改它。

centerGameObject(yourGameObject, Camera.main, 5f);