void Update(){
float accel = Input.acceleration.x;
transform.Translate(accel, 0, 0);
}
以上是我当前游戏中加速器控制的代码。我希望能够向左和向右倾斜手机,并且角色将左右移动。该代码工作正常,但角色移到屏幕外。我尝试对Accel值进行Mathf.Clamp尝试,也尝试对transform.position进行钳制,但均无济于事,似乎只是改变了加速度计控件的速度。
我需要一种方法来动态限制字符在任何屏幕尺寸内的移动。
答案 0 :(得分:1)
如果我正确理解了这个问题,则希望将物体固定在可见区域内。为此,您可以使用视口。
Vector3 pos = this.transform.position;
Vector3 viewportPos = Camera.main.WorldToViewportPoint(pos);
if (viewportPos.x < 0f) Camera.main.ViewportToWorldPoint(new Vector3(0f, pos.y, pos.z));
else if (viewportPos.x > 1f) Camera.main.ViewportToWorldPoint(new Vector3(1f, pos.y, pos.z));
答案 1 :(得分:0)
Maybe you could set colliders as triggers alongside the track and set accel variable to 0 if the object is touching the trigger