Scusa se ti risp solo ora Ros ma l'ho visto ora >.<.
C'è scritto nel punto (2) sotto al diagramma
Class name: CustomAlert
Script location: "Assets\Standard Assets\Scripts\CustomAlert.cs"
Description
Classe generica per la creazione di alert personalizzati.
Field summary
attribute | description |
---|---|
private string message | Messaggio che apparirà nella label |
private int id | Id della window che contiene l'alert |
private bool active_flag | Se true mostra l'alert, al contrario la nasconde |
private Rect position | Rettangolo contenente la finestra |
private Rect label_position | Rettangolo contenente la label. Coordinate relativa a position |
private AudioClip clic | Suono che viene riprodotto alla pressione del tasto OK |
private GUIStyle style | Stile associato al CustomAlert |
private int text_lenght | Lunghezza del messaggio visualizzato dalla CustomAlert |
Method summary
signature | description |
---|---|
public CustomAlert (int _id, string _msg) | Costruttore. E' possibile impostare l'id della finestra ed il messaggio da visualizzare. Gli alert si collocano sempre al centro dello schermo sopra qualunque altro elemento di gui |
public void show() | Mostra la CustomAlert se la variabile active_flag è true. Questa funzione deve essere inserita dentro OnGUI |
public void setStyle(GUIStyle _style) | imposta un GUIStyle personalizzato |
public void active(bool _flag) | imposta la variabile active_flag |
public bool isActive() | restituisce il valore di active_flag |
private void window_creator(int id) | funzione di creazione della finestra. Prende come parametro l'id della CustomAlert |
public int getId() | Restituisce il valore di id |
Usage
La classe CustomAlert permette la creazione e di una finestra di avviso direttamente dallo script che la deve gestire sfruttando il gestore di CustomAlert incluso negli script che disegnano le GUI (TravelModeScript/ComabtInterface).
Esempio:
using UnityEngine;
using System.Collections;
public class LocalTravelScript : MonoBehaviour {
//definisco la variabile che contiene la CustomTetLabel
private CustomAlert test_alert;
void Start()
{
test_alert = new CustomAlert(1, "T3R rulez");
test_alert.active(false);
Camera.mainCamera.GetComponent<TravelModeScript>().add_CA(ref test_alert);
}
void OnTriggerEnter(Collider other){
if(other.tag.Equals("Player")){
//chiedo, allo script che contiene il mio oggetto, di visualizzare la CustomTextLabe
Camera.mainCamera.GetComponent<TravelModeScript>().getCa(test_alert.getId()).active(true);
}
}
Per utilizzare questo tipo di gestione dell'oggetto CustomAlert è necessario che lo script che disegna la gui (in questo caso il TravelModeScript) erediti da CustomGUIPainter
void OnGUI()
{
//disegna le CTL
foreach (CustomAlert ctl in CA_to_render.Values)
{
ca.show();
}
}
Tramite questo semplice ciclo, all'interno della OnGUI è possibile disegnare tutte le CustomAlert attive.