首页 文章

Unity 2D - 跨设备实例化预制不一致的位置?

提问于
浏览
0

我用团结5制作了一款2d安卓赛车游戏 . 我正在手机上测试游戏(华硕Zenfone 5与棒棒糖)它完美的工作也测试了其他手机上的游戏(三星Galaxy Duos与软糖)完美的工作 .

BUT 当我在三星Galaxy s5上测试时,实例化的预制件具有不同的Y坐标值(它们开始从屏幕中间实例化,并且它们假设从顶角实例化) .

Vector3 carPos = new Vector3 (Random.Range(-0.95f, 1.0f), transform.position.y, transform.position.z);
carNo = Random.Range(0, 4);
Instantiate (cars[carNo], carPos, transform.rotation);

1 回答

  • 0

    对于2D游戏,您使用Vector2s来保存坐标而不是Vector3s . 我相信会出现这个问题,因为 the screen size of the different devices are different . 要解决此问题,请尝试在定位时使用Screen.width或Screen.height等多种测量方法 . 例如,如果您尝试在屏幕的右上角实例化汽车,则可以使用


    Vector2 carPos = new Vector2(Screen.width, Screen.height);
    Instantiate (cars[carNo], carPos, transform.rotation);
    

    您可以使用Random.Range()相对于Screen.width实现汽车的随机x坐标 .

相关问题