【问题标题】:Physics functions with different resolutions(Unity)不同分辨率的物理函数(Unity)
【发布时间】:2016-06-01 08:55:10
【问题描述】:

我有我的脚本:

  1. Collider2D[] hitColliders = Physics2D.OverlapCircleAll(vector 2 pos, float radius);

我需要从具有不同屏幕分辨率的 Screen.width 半径的点 (pos) 获取所有对撞机。如何将这些参数(pos 和 radius)赋予这个函数?

  1. playerObject.GetComponent<Rigidbody2D> ().AddForce (new Vector2 (direction.x * powerMultipl,direction.y * powerMultipl), ForceMode2D.Impulse);

同样的事情!我想根据屏幕分辨率来调整我的力量!

我只需要在不同屏幕分辨率的设备上以相同的方式玩我的游戏!谢谢你帮助我!

【问题讨论】:

  • 要让游戏在所有屏幕尺寸和纵横比下都能完美正常运行是难以置信的。这就是为什么游戏开发需要花费数百万美元,而游戏公司拥有 100 和 100 多名工程师的原因。如果(出于某种原因)你想做这件事,你会花费几个月的时间来做这件事。真的,我会忘记它。只是享受它作为一种爱好。制作有趣的动画和其他东西。

标签: unity3d unity3d-2dtools


【解决方案1】:

始终注意屏幕空间和世界空间,Physics2D.OverlapCircleAll() 函数采用与世界空间(笛卡尔坐标)相关的所有参数,因此首先使用将屏幕空间转换为世界空间

Camera.main.ScreenToWorldPoint(ScreenCoordinate) // returns a vector3

您还必须将 Screen.width 转换为世界单位,请查看下方

http://answers.unity3d.com/questions/736142/what-is-good-practice-to-set-pixels-to-units-to-an.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多