• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Creare un menù che si adatta alla risoluzione dello schermo
#1
Question 
Allora, io vorrei creare un menù che si adatti alla risoluzione dello schermo, il tutto per evitare spiacevoli inconvenienti quali scritte tagliate e roba simile. Per risolvere questo problema, ho pensato ad utilizzare un if però non so il codice della libreria unity da utilizzare per leggere la risoluzione dello schermo o comunque quella impostata all'avvio del gioco. Non è che qualcuno mi potrebbe passare il codice in c# per fare tutto questo? Grazie
 
Rispondi
#2
Quando fai il Build del Gioco, prima di giocarci ti chiede la risoluzione, a seconda della risoluzione dovrebbe anche cambiare la grandezza del menu. Prova.. Comunque se non vuoi rischiare di tagliare una parte del menu ti consiglio di mettere i Button al centro, non in una posizione predisposta, se no per alcune risoluzioni parte del menu verrà tagliato. Per mettere tutta la GUI al centro usa questo semplice script:

void OnGUi ()
{
GUILayout.BeginArea (new Rect(Screen.width / 2, Screen.height / 2, 100, 100));
}

,100,100)); = La grandezza della GUI in altezza e larghezza.
 
Rispondi
#3
Si questo lo so fare però per cio che devo creare non va bene mi serve un codeice che legga la risoluzione inpostata all'avvio del gioco e in base a questa modifichi il menù in modo tale da vedersi "normale" ovvero senza i tagli che ho notato nei test.
 
Rispondi
#4
Bhe non ti resta che studiare un linguaggio supportato da Unity (boo; C#; Js) per poter risolvere oppure metti su un bel team se hai intenzione di realizzare un game da vendere/distribuire free.
 
Rispondi
#5
Il Team lo ho già, e so programmare il problema come ho detto, consiste nel fatto che non so in quale variabile e sotto quale forma unity salva le impostazioni che vengono messe dell'utente all'avvio del gioco, se sapessi quello non ci vorrebbè niente, basta un minimo di x# il problema ripeto è proprio sapere quelle informazioni e vorrei evitare di mettere un pre menù del premenù dopo il pre munù di unity dove rimettere alla fine le stesse impostazioni di gioco!
 
Rispondi
#6
Mmm non saprei dirti, conosco solo le basi di Unity ancora, quindi, mi escludo dalla discussione asd addioz.
 
Rispondi
#7
Fa niente, al massimo metto i pulsanti per selezionarlo all'avvio del gioco (anche se lo chiede già unity ma...meglio essere ripetitivi che fare una mezza schifezza)
 
Rispondi
#8
(21-05-2013, 05:37 PM)xGiovi9810x Ha scritto: Fa niente, al massimo metto i pulsanti per selezionarlo all'avvio del gioco (anche se lo chiede già unity ma...meglio essere ripetitivi che fare una mezza schifezza)

Non ho tanto capito il tuo problema cmq per mettere una gui in mezzo allo schermo. Come ha detto BlaClex46 bisogna usare Screen.Height, Screen.Width ma bisogna sottrarre l'altezza e la larghezza, così:

Codice:
void OnGUI ()
{
    GUI.Button (new Rect (Screen.Width/2 - larghezza bottone, Screen.Height/2 - altezza bottone,larghezza bottone, altezza bottone));
}
 
Rispondi
#9
Ragazzi ho trovato questa soluzione e sembra funzionare se non che adesso non funzionano più i pulsanti

Codice:
using UnityEngine;
using System.Collections;

public class bootsk : MonoBehaviour
{

public GUIStyle style;
public GUIStyle style1;
public GUIStyle style2;

// Use this for initialization
void Start ()
{

}

// Update is called once per frame
void Update ()
{

}
//Zona Grafica
void OnGUI()
{
if (Screen.width/2 >= 960)
{
GUI.Button(new Rect(Screen.width / 2, Screen.height / 2, 100, 50),"Premi qui per entrare nel gioco",style);
if(GUI.Button(new Rect(Screen.width / 2, Screen.height / 2, 100, 50),"Premi qui per tornare al desktop",style1))
{
Application.Quit();
}
GUI.Label (new Rect(Screen.width / 2, Screen.height / 2, 100, 50),"Questo è un gioco: non bisogna ripetere questo nella vita reale",style2);
}
else if (Screen.width/2 >= 800)
{
GUI.Label (new Rect(Screen.width / 2, Screen.height / 2, 100, 50),"Questo è un gioco: non bisogna ripetere questo nella vita reale",style2);
GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 + 150, 100, 50),"Premi qui per entrare nel gioco",style);
if(GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 - 150, 100, 50),"Premi qui per tornare al desktop",style1))
{
Application.Quit();
}
}
}
}


Qualucno sa perchè, ho controllato, gli if non dovrebbero andare in conflitto, se qualcuno ha qualche idea non esiti anche se sbagliata potrebbe ispirare una soluzione a qualcun altro!
 
Rispondi
#10
Ti ho già detto come centrare guarda la risposta e cmq lo script è pieno di spazi inutili e di funzioni vuote inutili (Start,Update) e ci sono 400 graffe in più. Posta il codice attraverso il tag e aggiusta l'identazione, così almeno fai meno confusione tu e io riesco ad aiutarti.
_________________
Se quello che ti ho mostrato non è quello che cerchi scrivi in italiano correggiuto perfavore perchè non si capisce tanto.
 
Rispondi
#11
si ma a parte questi "piccoli" dettagli, secondo te a livello di codice perché non legge che io ho cliccato sul pulsante torna al desktop (che è l'unico che ho preparato)? Per quanto riguarda il centraggio lo potrei benissimo fare anche se preferirei di no perchè rovinerebbe l'estetica del menù!

NB. In questo momento sto lavorando a un altra soluzione, se funge la posto (questa volta bene) così da aiutare qualunque altro utente che potrebbe avere problemi simili!
 
Rispondi
#12
(22-05-2013, 10:52 PM)xGiovi9810x Ha scritto: si ma a parte questi "piccoli" dettagli, secondo te a livello di codice perché non legge che io ho cliccato sul pulsante torna al desktop (che è l'unico che ho preparato)? Per quanto riguarda il centraggio lo potrei benissimo fare anche se preferirei di no perchè rovinerebbe l'estetica del menù!

NB. In questo momento sto lavorando a un altra soluzione, se funge la posto (questa volta bene) così da aiutare qualunque altro utente che potrebbe avere problemi simili!

La funzione Application.Quit() non funziona se applicata nell'editor di unity o nel webplayer ma solo nel gioco quindi fai build and run e prova se va....se si è giusto. Non rovina nessuna estetica, è il metodo che utilizzano tutti i programmatori di unity XD. Nel mio menù avevo fatto come ti ho scritto sopra è me li metteva centrati precisi senza rovinare niente. Cmq fai come vuoi.
 
Rispondi
#13
Ok metto al centro comunque l'avevo fatto il build della scene ma non è andato lo stesso, per ora lo metto al centro ma comunque come trovo una soluzione come ho detto la posto sul forum e aggiusto bene tutti i menù, non è proprio il massimo (per l'estetica) avere le scritte in mezzo di qua!
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Come creare Menù e salvare la partita.. Biagino 8 949 21-08-2014, 03:07 PM
Ultimo messaggio: Blackg96
  AI alla Mount and Blade Led 13 900 09-02-2014, 10:51 PM
Ultimo messaggio: ManHunter
Bug Main menu professionale Ice 2 955 09-07-2012, 10:40 PM
Ultimo messaggio: Skyline

Vai al forum:


Browsing: 2 Ospite(i)