【发布时间】:2016-06-17 23:46:33
【问题描述】:
我正在使用 Unity 开发一款 2D 游戏。我正在为 android 开发它,它处于纵向模式。我在屏幕左侧放置了一堵墙,在屏幕右侧放置了一堵墙。问题是这两个墙之间的距离在不同的屏幕分辨率下是不同的。所以,我的角色不能以相同的速度从一堵墙跳到另一堵墙。 我附上一张图片来说明我的观点。
我该怎么做才能在不同的设备中获得相同的两堵墙之间的距离?任何帮助将不胜感激。
编辑:这就是我现在放置墙壁的方式。
screenLeft = Camera.main.ScreenToWorldPoint (new Vector3 (0f, 0f, 0f)).x;
screenRight = Camera.main.ScreenToWorldPoint (new Vector3 (Screen.width, 0f, 0f)).x;
rightWallSizeX = rightWall.GetComponent<SpriteRenderer> ().bounds.size.x;
leftWallSizeX = leftWall.GetComponent<SpriteRenderer> ().bounds.size.x;
rightWall.transform.position = new Vector3 (screenRight - rightWallSizeX/2, 0f, 0f);
leftWall.transform.position = new Vector3 (screenLeft + leftWallSizeX/2, 0f, 0f);
【问题讨论】:
-
这是 Sprite 还是 ui 组件?
-
这些是精灵。
-
将墙放置在屏幕侧面旁边是错误的,因为它们是“相对”放置的……您应该以“绝对”的方式放置它们,即您的关卡设计应该是独一无二的,无论如何使用屏幕尺寸。提示:发布一些代码
-
如果您希望根据屏幕比例获得“动态”设计级别,另一种方法是将光线从玩家位置投射到另一面墙上,命中距离将为您提供有关玩家跳出到达另一边的必要力量。
-
@Aybe 添加了一些代码。你能指导我这里最好的方法是什么吗?