2013-07-25 8 views
11

私は480x320解像度で作成したゲームをビルド設定でUnityに設定しました。しかし、すべての解像度ですべてのAndroid搭載端末で自分のゲームを公開したいと考えています。ユニティにゲームの解像度まで自分のゲームを拡大するよう指示するにはどうすればいいですか?それは可能ですか?Android搭載端末のあらゆる解像度でゲームを動作させるにはどうすればよいですか? (Unityで)

ありがとうございます!

答えて

16

質問に対する回答は、ゲームの実装方法によって大きく異なります。 GUIテクスチャを使用して作成した場合は、オブジェクトの配置/サイズと画面サイズの大きさによって大きく左右されますが、これはややこしいことです。

ゲームの大半がオブジェクト(プレーン、キューブなど)を使用して行われる場合は、通常は2つの方法を選択して使用します。

1)最初の方法は実装が非常に簡単ですが、必ずしも良くないとは限りません。カメラのアスペクト比を、あなたのゲームでデザインしたアスペクト比に合わせるだけで簡単に変更できます。だからあなたの場合には、あなたが4であなたのゲームを設計したことから、:、しかし

Camera.aspect = 4f/3f; 

画面上の誰かの演奏は、16のためのものとします:3、あなたはこのような何かをしたい9、ゲームが終了します歪んだと伸びて見える。

2)2番目の方法は簡単ではなく、かなりの作業と計算が必要ですが、よりクリーンな結果が得られます。正射投影カメラを使用している場合は、使用されているスクリーン解像度に関係なく、正射投影カメラは高さを設定された高さに保ち、幅のみを変更することが重要です。たとえば、正射投影カメラのサイズが10の場合、高さは2に設定されます。これを念頭において、各レベルで可能な限り広いカメラを補正する必要があります(たとえば、背景が広い)、またはカメラの正方形のサイズを、作成した幅と一致するまで動的に変更します。あなたはステレオカメラで3Dゲームをやった場合

、画面の解像度は本当にそれがどのように見えるかは影響しないはずですが、私はそれがゲームに依存推測するので、より多くの情報が

+0

私はオブジェクト(立方体、球)を使用してゲームを作る2Dゲームでortographicカメラをスケーリングするための私のスクリプトです。このゲームはUnity 3D世界で作られた2Dゲームです。 – Zwiebel

+0

2Dの場合は、正射投影カメラを使用する必要があります。そのために私が与えたヒントに従ってください。 –

9

方法私を必要とされるであろうやったデバイスのアスペクト比に応じてカメラのビューポートを変更する あなたが

float xFactor = Screen.width/800f; 
float yFactor = Screen.height/1280f; 


Camera.main.rect=new Rect(0,0,1,xFactor/yFactor); 

スクリプトのいずれかでこれを行うことができ、これは魔法のように動作します800x1280

ザ・のためのゲームを作っ考えてみましょある

+1

これはちょっとバグです。@ネルソンオーストリアの答えを使って、 – Rohit

1

これを行う簡単な方法はあなたの目標を考慮している、私はあなたがIphone 5のゲームをしている場合、アスペクト比は9時16分または16時9分です。

public float targetRatio = 9f/16f; //The aspect ratio you did for the game. 
void Start() 
{ 
    Camera cam = GetComponent<Camera>(); 
    cam.aspect = targetRatio; 
} 
-1

私にとって最善の解決策は、両側のカットオフやゲームビューの歪みもないが存在するように交差する線の定理を使用することです。これは、異なるアスペクト比に応じて前進または後退しなければならないことを意味します。

好きな場合は、カメラの距離を自動的に補正するan asset on the Unity asset storeを使用しているため、使用している携帯端末に関係なく、歪みや切り傷が発生することはありません。

1

はここ

public float screenHeight = 1920f; 
public float screenWidth = 1080f; 
public float targetAspect = 9f/16f; 
public float orthographicSize; 
private Camera mainCamera; 

// Use this for initialization 
void Start() { 

    // Initialize variables 
    mainCamera = Camera.main; 
    orthographicSize = mainCamera.orthographicSize; 

    // Calculating ortographic width 
    float orthoWidth = orthographicSize/screenHeight * screenWidth; 
    // Setting aspect ration 
    orthoWidth = orthoWidth/(targetAspect/mainCamera.aspect); 
    // Setting Size 
    Camera.main.orthographicSize = (orthoWidth/Screen.width * Screen.height); 
} 
関連する問題