具有不同分辨率的物理函数(Unity)

时间:2016-06-01 08:55:10

标签: unity3d unity3d-2dtools

我有我的剧本:

  1. Collider2D[] hitColliders = Physics2D.OverlapCircleAll(vector 2 pos, float radius);
  2. 我需要从点(pos)获得具有不同屏幕分辨率的Screen.width半径的所有碰撞器。如何将这些参数(位置和半径)赋予此函数?

    1. playerObject.GetComponent<Rigidbody2D> ().AddForce (new Vector2 (direction.x * powerMultipl,direction.y * powerMultipl), ForceMode2D.Impulse);
    2. 同样的事情!我想根据屏幕分辨率来扩展我的力量!

      我需要的是我的游戏在具有不同屏幕分辨率的设备上以相同的方式播放! Thnx帮助我!

1 个答案:

答案 0 :(得分: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