1

我试图将 Sprite 限制在屏幕边缘。我正在使用统一手册中的这个脚本,并且我在它的运动中添加了一个夹子。问题是每个分辨率的屏幕边界都不同,我无法弄清楚如何在这里使用“camera.WorldToViewportPoint”...我的边界当前是 0.1F 和 0.9F,我想用真实的屏幕边界或尺寸。ATM 这可以正常工作,但 Sprite 的移动范围很小,而不是实际的屏幕尺寸。请帮忙 :)

到目前为止,这是我的代码:

public float speed = 10.0F;
public float posX;
public float posY;

void Update() {
    Vector3 dir = Vector3.zero;
    dir.x = Input.acceleration.x;
    dir.y = Input.acceleration.y;
    if (dir.sqrMagnitude > 1)
        dir.Normalize ();

    dir *= Time.deltaTime;
    transform.Translate (dir * speed);

    transform.position = new Vector3(Mathf.Clamp(transform.position.x, 0.1F, 0.9F),Mathf.Clamp(transform.position.y, 0.1F, 0.9F), 0);
}
4

0 回答 0