2016-04-11 6 views
0

私はユニティ5を使って2dアンドロイドレーシングゲームを作った。私は自分の携帯電話(ロリポップ付きのAsus Zenfone 5)でゲームをテストしていた。それは完璧に働いた他の携帯電話(サムスンギャラクシーデュオ、ジェリービーンズ) 。Unity 2D - インスタント化されたプレハブはデバイス間で一貫性がありませんか?

しかし私はインスタンス化プレハブ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); 

答えて

0

2Dゲームでは、Vector2sを使用してVector3sではなく座標を保存します。異なるデバイスの画面サイズが異なるので、この問題が発生すると思います。この問題を解決するには、配置時にScreen.widthやScreen.heightなどの多彩な測定値を使用してみてください。たとえば、あなたが


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

を使用することになり、画面の右上隅に車をインスタンス化しようとしていた場合は、関連して)Random.Range(と車のランダムのx座標を実装することができますScreen.widthに。

+0

答えを試してみましたが、screen.heightの値を浮動小数点数の世界の値に変更するにはどうすればいいですか? –

関連する問題