gpt4 book ai didi

unity-game-engine - Unity 2D Android - 将对象限制在屏幕内

转载 作者:行者123 更新时间:2023-12-02 15:53:35 40 4
gpt4 key购买 nike

我正在开发一款类似于 Space Shooter 的 2D 游戏。我为 Web 和 PC 开发了它,效果非常好。我现在正在将其移植到 Android,但遇到了播放器代码问题。

玩家(一艘 spaceship )将位于屏幕底部,并在屏幕内从左向右移动。我编写了一段代码来限制屏幕内的玩家,代码如下:

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 中执行此操作?我希望玩家停留在屏幕中,即如果用户通过将玩家拖动到最左边来移动玩家,无论他尝试拖动多少,玩家都应该停留在屏幕的左角,这同样适用于正确的。简单来说,我想检测屏幕的左右边缘并将我的对象限制在这些边缘内。

我的游戏将处于横向模式。

任何帮助将不胜感激。提前致谢。

最佳答案

此类问题一般通过以下方式解决:

if(transform.position.x < screenx) {

transform.position.x = screenx;
}

在这里,我们检查变换后的玩家是否超出了屏幕空间。如果是,我们将其设置为最小值 - 我假设是 screenx

关于unity-game-engine - Unity 2D Android - 将对象限制在屏幕内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21512004/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com