CustomTextLabel

Class name: CustomTextLabel
Script location: "Assets\Standard Assets\Scripts\CustomTextLabel.cs"

Description
Classe generica per la creazione di label personalizzate.

Field summary

attribute description
private Rect position rettangolo che contiene la label
private string text testo da inserire nella CustomTextLabel
public float pos_x coordinata x della CustomTextLabel
public float pos_y coordinata y della CustomTextLabel
private GUIStyle style style della CustomTextLabel
private bool custom_style false se si vuole utilizzare lo stile di default, true se si setta uno stile personalizzata tramite setStyle
private bool active_flag true se la CustomTextLabel viene visualizzata, false altrimenti
private Rect box_position rettangolo che contiene il box della CustomTextLabel
private string name nome della CustomTextLabel

Method summary

signature description
public CustomTextLabel (float _pos_x, float _pos_y, string _text, string _name) Costruttore. E' possibile impostare la posizione della CustomTextLabel tramite _pos_x e _pos_y. Il parametro _text indica il testo che la CustomTextLabel visualizzerà e _name ne indica il nome
public string getName() restituisce il nome della CustomTextLabel
public void setStyle(GUIStyle _style) imposta un GUIStyle personalizzato
public void show() mostra la CustomTextBox se la variabile active_flag è true. Questa funzione deve essere inserita dentro OnGUI
public void active(bool _active) imposta la variabile active_flag

Usage
La classe CustomTextLabel permette la creazione e la gestione di una label direttamente dallo script che la deve gestire sfruttando il gestore di CustomTextLabel 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 CustomTextLabel local_travel_label;

    void Start()
    {
     //Creo l'oggetto CustomTextLabel
        local_travel_label = new CustomTextLabel((Screen.width/2)+100, (Screen.height/2)-150, "Press \"E\" to use the local travel system", "localTransport");
        //dato che di default la label viene visualizzata, qui gli si dice di non mostrarla
        local_travel_label.active(false);
        //inserisco la mia CustomTextLabel nello script che disegna la gui
        Camera.mainCamera.GetComponent<TravelModeScript>().add_CTL(ref local_travel_label);
    }

    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>().getCtl(local_travel_label.getName()).active(true);
        }
    }

    void OnTriggerExit(Collider other){
        if(other.tag.Equals("Player")){
                //chiedo, allo script che contiene il mio oggetto, di smettere di visualizzare la CustomTextLabe
            Camera.mainCamera.GetComponent<TravelModeScript>().getCtl(local_travel_label.getName()).active(false);
        }
    }
}

Per utilizzare questo tipo di gestione dell'oggetto CustomTextLabel è necessario che lo script che disegna la gui (in questo caso il TravelModeScript) erediti da CustomGUIPainter

    void OnGUI()
    {

        //disegna le CTL
        foreach (CustomTextLabel ctl in CTL_to_render.Values)
        {
            ctl.show();
        }
    }

Tramite questo semplice ciclo, all'interno della OnGUI è possibile disegnare tutte le CustoTextLabel attive.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License