2013-07-25 16 views

回答

16

您的問題的答案很大程度上取決於您如何實施遊戲。如果您使用GUI紋理創建它,那麼它很大程度上取決於您如何放置/調整對象大小與屏幕大小,這使事情變得有點棘手。

如果大部分遊戲都是使用對象(如飛機,立方體等)完成的,那麼我通常選擇使用兩種方法。

1)第一種方法很容易實現,但並不總是看起來太好。您可以簡單地改變相機的高寬比以匹配您設計遊戲的寬高比。所以你的情況,因爲你設計你的遊戲在4:3,你會做這樣的事情:

Camera.aspect = 4f/3f; 

但是,如果有人在玩屏幕上意味着16:9,比賽將結束看起來扭曲和伸展。

2)第二種方法不是那麼容易,需要相當多的工作和計算,但會給你一個更清潔的效果。如果您使用的是拼寫相機,請注意一點,無論使用何種屏幕分辨率,正交相機都會將高度保持在設定的高度,並且只會改變寬度。例如,使用大小爲10英寸的正交相機時,高度將設置爲2.考慮到這一點,您需要做的是補償每個級別內可能的最寬的相機(例如,具有寬背景)或動態更改相機的正交大小,直到其寬度與您創建的寬度相匹配。

如果你已經做了3D遊戲的立體攝像頭,屏幕分辨率應該不會真正影響它的外觀,但我想這取決於遊戲,所以更多的信息,將需要

+0

我讓使用對象(立方體,球體)遊戲。這款遊戲是在Unity 3D世界中製作的2D遊戲。 – Zwiebel

+0

如果是2D,那麼您必須使用正交相機,所以請按照我給出的提示進行操作。 –

9

的路上我確實是根據設備的縱橫比來改變相機視 考慮你做的遊戲800x1280

的,你可以在腳本

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


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

中的任何一個做到這一點,這就像魔術

+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

這是我在2D遊戲縮放ortographic相機腳本

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); 
} 
相關問題