我试图将精灵限制为屏幕边缘。我正在使用统一手册中的这个脚本,我为它的动作添加了一个夹子。问题是屏幕界限与每个分辨率不同,我无法弄清楚如何在这里使用“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);
}