Recensione Asset: EasyEditor

marcosecchi Dev, Unity3D 0 Comments

Qualche tempo fa, ho scritto a proposito di sia importante estendere lo Unity Editor durante il processo di sviluppo.

Sfortunatamente, il più delle volte ci si trova a scrivere la propria estensione di fretta (beh… almeno è quello che succede a me…) ed il vostro Editor personalizzato (ed il corrispondente codice!) diventerà un ammasso di dati caotici.

Per mia fortuna (e vostra!) c’è sempre qualcun altro che ha avuto il medesimo problema, e lo ha risolto in modo intelligente!

Si dia il benvenuto a EasyEditor, una plugin disponibile nello the Unity Asset Store. Come dice la descrizione:

“Easy Editor è un utile framework che permette di far diminuire drasticamente il tempo passato a creare interfacce per l’editor del vostro MonoBehaviour o ScriptableObject, con pochissime linee di codice.”


Fig. 1 – Easy Editor

Setup

Iniziare ad utilizzare EasyEditor è veramente semplice: dopo aver scaricato ed installato la plugin, dovrete selezionare il vostro script MonoBehaviour dal Project Panel e scegliere Assets > Customize Interface dal menu principale: uno script che estende EasyEditorBase che è una sottoclasse di UnityEditor.Editor.

Questa classe include già molte funzionalità che vi serviranno per costruire la vostra Editor window, ad esempio, le vostre liste saranno riordinabili (grazie a Rotorz!).

Una delle caratteristiche che preferisco è il modo in cui è possibile chiamare una funzione dell’Inspector: si tratta semplicemente di aggiungere il seguente attributo ad un metodo:

[Inspector]

ed otterrete un pulsante nell’Inspector che chiamerà il metodo stesso.

Easy Editor Button

Pic. 2 – Il pulsante di chiamata del metodo

Raggruppare gli Elementi e Controllare il Layout

Organizzare le cose… una funzionalità che adoro!

[EasyEditor.Groups("...", "...", "...")]

Questo attributo dichiarerà tutti i gruppi che verranno raggruppati nell’Inspector: dovrete quindi dichiarare a quale gruppo appartiene un determinato elemento, utilizzando:

[Inspector(group = "Basic Settings")]

E semplice anche mettere in ordine gli elementi: basterà aggiungere order = {order number} all’attributo.

L’attributo Visibility vi permette persino di nascondere gli elementi, utilizzando delle condizioni a vostra scelta.

E’ disponibile anche un set di attributi appositi per controllare il layout (BeginHorizontal, EndHorizontal, BeginVertical, EndVertical), aggiungere commenti (Comment) e tooltip (Tooltip, EETooltip).

Conclusione

Spero che questo breve articolo permetta di capire quanto sia semplice organizzare le proprie finestre dell’Editor. Ovviamente ciascuna delle funzionalità descritte sopra potrebbe essere tranquillamente ottenuta scrivendo il proprio codice ma, personalmente, credo che utilizzare degli attributi già scritti, renda il codice più leggibile, e sarete in grado di focalizzarvi meglio dove è realmente necessario.