【发布时间】:2014-02-06 14:03:52
【问题描述】:
我正在开发一款类似于 Space Shooter 的 2D 游戏。我为 Web 和 PC 开发了它,效果很好。我现在正在将其移植到 Android,但播放器代码有问题。
玩家(太空船)将位于屏幕底部,并在屏幕内从左向右移动。我写了一段将播放器限制在屏幕内的代码,代码如下:
private float screenx = Screen.width -20;
playerPosScreen = Camera.main.WorldToScreenPoint(transform.position);
if(Input.GetKey(KeyCode.RightArrow) && playerPosScreen.x < screenx)
{
transform.Translate(Vector3.right * speed * Time.deltaTime * 0.4f);
}
if (Input.GetKey(KeyCode.LeftArrow) && playerPosScreen.x > 20)
{
transform.Translate(-Vector3.right * speed * Time.deltaTime * 0.4f);
}
我知道我仍然需要转换上述代码中的一些静态值,这并不是一个真正的编码方式。
我的问题是如何在 Android 中执行此操作?我希望玩家留在屏幕上,即如果用户通过将玩家拖动到最左侧来移动玩家,无论他尝试拖动多少,玩家都应该留在屏幕的左角,这同样适用于正确的。简单来说,我想检测屏幕的左右边缘并将我的对象限制在这些边缘内。
我的游戏将处于横向模式。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
标签: unity3d