私はフリーアスペクト比で最新のユニティバージョンでシンプルな2Dゲームを作っていますが、画面をポートレートやランドスケープに変更するたびに乱れてしまいます。今私はチュートリアルに続き、利用可能なチュートリアルや答えを一日中過ごしましたが、不思議なことに、コードのどれかが助けになりませんでした。ここに私の画面は、私はこのコードユニティアンドロイド画面解像度
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Screeratio : MonoBehaviour {
// Use this for initialization
void Start() {
// set the desired aspect ratio (the values in this example are
// hard-coded for 16:9, but you could make them into public
// variables instead so you can set them at design time)
float targetaspect = 16.0f/9.0f;
// determine the game window's current aspect ratio
float windowaspect = (float)Screen.width/(float)Screen.height;
// current viewport height should be scaled by this amount
float scaleheight = windowaspect/targetaspect;
// obtain camera component so we can modify its viewport
Camera camera = GetComponent<Camera>();
// if scaled height is less than current height, add letterbox
if (scaleheight < 1.0f)
{
Rect rect = camera.rect;
rect.width = 1.0f;
rect.height = scaleheight;
rect.x = 0;
rect.y = (1.0f - scaleheight)/2.0f;
camera.rect = rect;
}
else // add pillarbox
{
float scalewidth = 1.0f/scaleheight;
Rect rect = camera.rect;
rect.width = scalewidth;
rect.height = 1.0f;
rect.x = (1.0f - scalewidth)/2.0f;
rect.y = 0;
camera.rect = rect;
}
}
// Update is called once per frame
void Update() {
}
}
を使用していますし、これはdoesnの今、異なる解像度
をどのように見えるかであります同様にうまくいくようです。私のゲームはどんな画面サイズでもスムーズに動くはずです。
UGUIですか?多分あなたのゲームで肖像画と風景の両方を望むなら、それはそれぞれのためにそれを設計するほうがよいでしょう。 UGUIを使用する場合は、アンカーを使用してそれらを制御するために親を設定することができます。 – ATHellboy
@ATHellboy下の私のコメントを確認してください – melissa