2013-07-25 10 views

risposta

16

La risposta alla tua domanda dipende in gran parte da come hai implementato il gioco. Se lo hai creato utilizzando le texture GUI, dipende in gran parte da come hai posizionato/ridimensionato gli oggetti rispetto alle dimensioni dello schermo, il che rende le cose un po 'complicate.

Se la maggior parte del gioco viene eseguita utilizzando oggetti (come aerei, cubi, ecc.), Ci sono due metodi che di solito scelgo di usare.

1) Il primo metodo è molto semplice da implementare, anche se non sembra sempre troppo bello. Puoi semplicemente modificare le proporzioni della fotocamera in modo che corrispondano a quelle su cui hai progettato il gioco. Quindi nel tuo caso, dal momento che hai progettato il gioco in 4: 3, si farebbe qualcosa di simile:

Camera.aspect = 4f/3f; 

Tuttavia, se qualcuno sta giocando su uno schermo significava per il 16: 9, il gioco finirà guardando distorto e allungato.

2) Il secondo metodo non è così semplice, richiede un bel po 'di lavoro e calcoli, ma vi darà un risultato molto più pulito per voi. Se si utilizza una fotocamera ortografica, una cosa importante da tenere presente è che indipendentemente dalla risoluzione dello schermo utilizzata, la fotocamera ortografica mantiene l'altezza a un'altezza impostata e modifica solo la larghezza. Ad esempio, con una fotocamera ortografica di dimensioni 10, l'altezza sarà impostata su 2. Con questo in mente ciò che dovresti fare è compensare la videocamera più ampia possibile all'interno di ogni livello (ad esempio, avere uno sfondo ampio) o modificare dinamicamente la dimensione ortografica della telecamera fino a quando la sua larghezza corrisponde a ciò che hai creato.

Se hai fatto un gioco in 3D con una fotocamera stereoscopica, risoluzione dello schermo non dovrebbe davvero influenzare come appare, ma credo che dipende dal gioco, quindi più informazioni sarebbe necessario

+0

Faccio un gioco utilizzando oggetti (cubi, sfere). Questo gioco è un gioco 2D realizzato nel mondo di Unity 3D. – Zwiebel

+0

se è 2D, allora devi usare la macchina ortografica, quindi segui semplicemente i suggerimenti che ho dato per questo. –

9

Il modo in cui i ha fatto è quello di cambiare finestra fotocamera in base al rapporto di formato dispositivo Considerate che hai fatto il gioco per 800x1280

la si può fare questo in uno qualsiasi dei script

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


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

e questo funziona come per magia

+1

Ragazzi, questo è un po 'buggato, consiglio vivamente di usare la risposta di @Nelson Austria, – Rohit

1

Un modo semplice per farlo è prendere in considerazione il tuo obiettivo, voglio dire se stai facendo un gioco per Iphone 5, allora le proporzioni sono 9:16 v o 16: 9 h.

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

La soluzione migliore per me è utilizzare il teorema di linee che si intersecano in modo che non v'è né un cut-off sui lati né una distorsione della vista gioco. Ciò significa che devi fare un passo indietro o avanti a seconda del diverso rapporto aspetto.

Se ti piace, ho an asset on the Unity asset store che corregge automaticamente la distanza della telecamera in modo da non avere mai una distorsione o un taglio, indipendentemente dal dispositivo portatile che si sta utilizzando.

1

Ecco il mio script per scalare la fotocamera Ortographic nei giochi 2D

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); 
} 
Problemi correlati