WorldToScreenPoint,但位置仍然不同

时间:2019-01-26 07:54:36

标签: c# unity3d

所以我已经开始使用WorldToScreenPoint,但是问题是在不同屏幕尺寸下对象是不一样的:(

这是我的代码

    public virtual void Move()
    {
        Vector2 buttonFirst = thisCam.WorldToScreenPoint(gameButtons[0].transform.position);
        buttonFirst.x = 316.5f;  //242
        buttonFirst.y = 111f;
        gameButtons[0].transform.position = buttonFirst;
}

此处是输出 enter image description here

2 个答案:

答案 0 :(得分:2)

  

对象在不同的​​屏幕尺寸上是不一样的

当然,大小不同,位置也不同。

如果需要返回位置不变,请使用WorldToViewportPoint,它总是返回介于(0,0)到(1,1)之间的值。

答案 1 :(得分:0)

据我所知,您需要使用ScreenToWorldPoint!

https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

选中此