【发布时间】:2015-05-24 03:40:59
【问题描述】:
我有这个代码可以让宇宙飞船上升,而不是让重力把它压在地板上。
if (Input.touchCount > 0)
GetComponent<Rigidbody2D>().AddForce(Vector2.up * force);
但是当我在手机上玩游戏时,游戏会跟踪我是否按住/触摸屏幕,并据此增加我上去的力度。这使得它非常困难,因为它非常敏感,我需要真正集中注意力并快速点击 真正 以免它飞到天空 puf 上(并且靠在屋顶上)我游戏中的另一个障碍)。
另外,如果你们中的任何人都可以给我一些关于如何根据设备屏幕制作 GUI 缩放的指示,我真的很感激,即使有几个教程,我似乎也无法弄清楚,我觉得笨蛋。
【问题讨论】:
-
该代码在您的
Update()或FixedUpdate()中吗?刚体应该使用后者。 docs.unity3d.com/ScriptReference/MonoBehaviour.FixedUpdate.html -
@MickyDuncan 你是对的,我错了。尽管如此,这艘船在桌面上玩时用“300”的力量还是不错的,但出于某种原因,我确信这对有经验的人来说是显而易见的,当去移动设备时,我必须使用“20”的力量来做到这一点可玩。有没有办法让游戏在我做一次后停止注册触摸?
-
好。我会说,一旦你计算出 GUI 缩放比例,力量可能会到位。例如仅仅因为屏幕尺寸是 640x480 而不是 1080p 而改变重力对我来说没有直接意义。然后我可能又错了。速度通常以像素/秒表示。也许您的最大速度应该是屏幕分辨率的函数?祝你好运