unity3d - 统一不同屏幕尺寸下的不同物理行为
问题描述
我正在开发一个 2D 自上而下的开放世界游戏,其中有一个可以通过键盘功能移动的角色。移动是由 Rigidbody.AddForce() 引起的。
问题是在不同的屏幕尺寸下移动速度是不一样的。
这是简单的代码:
void FixedUpdate()
{
if (Input.GetButton("Move"))
rigidbody.AddForce(transform.forward * speed);
}
角色的质量是一样的,漂浮的速度是一样的,但是,当我将游戏视图切换到全屏后,显然角色的移动速度更快。(这很奇怪,表明这不是性能问题。)
我尝试测试独立构建,那里一切都很好(但是在 android 构建中似乎有点慢。)但我需要有一个共同的速度在编辑器,因为我必须设计取决于时序的关卡,而时序取决于速度。
解决方案
物理在WorldSpace中工作,与ScreenSpace无关,所以你的问题超出了它的表面。android 上的性能下降是意料之中的,但在独立时,请确保您使用FixedUpdate进行物理操作(您在此处执行此操作)并确保在游戏期间没有任何事情导致FixedTimeStep发生变化。
推荐阅读
- r - 从 R 中的 SQLite 中的表中收集()
- sql-server-data-tools - 使用 DacServices.Deploy 发布 DACPAC (SSDT) 期间的执行超时错误
- php - PHPUnit 未定义的方法调用
- python - python中的文件路径错误
- java - 在数据框 spark 1.6 java 中将字符串转换为日期或整数
- python - 如何对 csv.writer 返回的对象进行类型注释?
- javascript - 单击子菜单页面时如何发出ajax请求?
- sql - regexp_replace 和 regexp_substr 变量的比较
- raspberry-pi3 - 在 RPi B+ 上构建 Yocto 镜像
- json - 杰克逊反序列化包含对象数组的对象