我在Unity制作了我的第一个游戏。它应该发布到Android和iOS。当我将屏幕比例改为9:18(三星S8,Lg G6 ......)小行星被切断时,一切都工作正常,因为产卵点固定在-2.4f到2.4f之间。我尝试了各种各样的东西,但没有任何效果......我已被告知使用screen.width然后制作一些逻辑,但我不知道如何制作逻辑,以便它实际工作。 enter image description here
这是我在场景中产生小行星的代码:Instantiate(asteroid1prefab, new Vector3(Random.Range(-2.4f, 2.4f), 6, 0), Quaternion.identity);
任何形式的帮助将不胜感激
答案 0 :(得分:2)
您需要使用基于屏幕尺寸的范围替换您的产卵系列。 为此,您可以将视口坐标投影到世界坐标
引用文档:
视口空间点是相对于相机标准化的。该 相机的左下角是(0,0);右上角是(1,1)。 z 位置是相机的世界单位。
使用带有输入(0,0)和(1,1)的Camera.ViewportToWorldPoint来获取屏幕右上角和左下角的世界坐标。这些将允许您设置产生对象的适当范围
修改强>
这应该给你一些看起来像
的东西Vector3 bottomLeftWorld = camera.ViewportToWorldPoint(new Vector3(0, 0, camera.nearClipPlane));
Vector3 topRightWorld = camera.ViewportToWorldPoint(new Vector3(1, 1, camera.nearClipPlane));
Instantiate(asteroid1prefab, new Vector3(Random.Range(bottomLeftWorld.x, topRightWorld.x), topRightWorld.y, 0), Quaternion.identity);