Finora abbiamo inserito i primi comandi per il ThirdPersonCharacter, dettagli che ci porteranno poi a interagire tra il nostro stesso personaggio e il menu di pausa, ma per attivarli ci servirà un nuovo widget che possa effettivamente corrispondere a un altro menu, da utilizzare solo quando dovremo bloccare il gioco. Per realizzarlo, torniamo sul Content Browser ed entriamo nella cartella dei Blueprints, per poi creare il nostro widget; come prima, clicchiamo con il tasto destro del mouse su uno spazio vuoto della cartella e, dirigendoci su User Interface, selezioniamo Widget Blueprint, rinominando lo stesso oggetto in PauseMenu_HUD.
Una volta che avremo finito potremo finalmente tornare sul nostro ThirdPersonCharacter, già presente nella stessa cartella. Entriamo nella sua griglia delle modifiche e, da lì, torniamo sul Branch creato in precedenza. Da lì, leghiamo il False dello stesso Branch a un nuovo nodo, che sarà un Create Widget. Questa base dovrà poi legarsi al nostro PauseMenu_HUD, il quale si potrà inserire attraverso la Class del nostro Construct. Tuttavia, per mostrare il menu durante il gioco, dovremo collegare il nodo bianco di Create Pause Menu HUD Widget a un nuovo Add to Viewport, collegando anche il Target di quest’ultimo al Return Value del già citato Create Widget. Adesso, ricordandoci sempre di eliminare il Context Sensitive dalla ricerca di Unreal Engine, trasciniamo il nodo bianco del Construct in uno spazio vuoto della griglia, legandolo infine a un Set Show Mouse Cursor; il suo Show Mouse Cursor dovrà rimanere attivo in ogni situazione, per cui clicchiamo sul pulsante vicino all’opzione. Il mouse non potrà tuttavia servire da solo se non potrà interagire con il giocatore, ed è da questo punto che dovremo collegare il Target del Set Show Mouse Cursor a un nuovo nodo: il Get Player Controller.
Subito dopo guardiamo a sinistra, tra le Variables del nostro personaggio, per trascinare l'IsPaused all’interno della griglia. Colleghiamo successivamente il nodo bianco rimasto del Set Show Mouse Cursor al nodo bianco sinistro dell’IsPaused; attiviamo la casella rossa dell’Is Paused e proseguiamo nelle modifiche. Infine, per chiudere le modifiche del ThirdPersonCharacter, colleghiamo il nodo bianco dell’IsPaused a un nuovo Set Game Paused; attiviamo anche la sua casella del Paused e clicchiamo su Compile, poi su Save, per salvare tutte le modifiche effettuate. A questo punto, per verificare che tutto sia stato inserito alla perfezione, potremo chiudere tutto e cliccare su Play, tasto visibile in alto al centro, dando il via al progetto. Entrati nel menu principale e selezionato il pulsante del Play, i collegamenti fatti dovrebbero inserirci in una scena con il nostro personaggio. A questo punto, per verificare di aver gettato le basi giuste al menu di pausa, ci basterà premere il tasto 1 sulla tastiera e vedere se il gioco si bloccherà o meno.
Creiamo il menu di pausa
Per trasformare la pausa in un vero e proprio menu dovremo innanzitutto crearne uno completamente nuovo. Per questo motivo dovremo entrare nel già creato PauseMenu_HUD, muovendoci all’interno della griglia da Designer. In questo stato, come nel caso del menu principale, dovremo semplicemente integrare tutti i pulsanti che ci serviranno dopo aver messo in pausa la partita. Spostiamoci quindi sulla Palette, visibile alla nostra sinistra, e trasciniamo un Text all’interno della griglia. A questo punto spostiamoci a destra, dove troveremo i Details del testo. Partiamo dagli Anchors, che dovranno essere sempre fissati al centro; in questo modo avremo il punto di riferimento giusto per posizionare il nostro blocco di testo, che dovrà avere sempre una Position X di -500 e una Position Y di -420. Per la grandezza, invece, il Text dovrà avere una Size X di 1000 e una Size Y di 240. Modificati i dati numerici del testo, non ci resta che dargli il ruolo che merita nel menu di pausa. Scendendo tra i Content, modifichiamo il Text in PAUSED, scendendo anche tra le Appearance per allineare il testo al centro, che potremo applicare con la pressione del tasto al centro di Justification.
Integriamo le opzioni
Dopo aver inserito il tasto che ci indicherà di aver messo in pausa il gioco, dovremo anche occuparci di tutti gli altri pulsanti. Torniamo quindi sulla Palette e, selezionando il Block, trasciniamone tre fette all’interno della griglia. Per il primo pulsante, essendo il punto di riferimento futuro per gli altri due, dovremo fissare con la massima precisione tutti i dati. Partiamo sempre dagli Anchors che, come nel caso del PAUSED, dovranno essere selezionati al centro. Da lì, fisseremo la Position X su -230 e la Position Y su -120, con la grandezza del testo che dovrà estendersi su 500 nel Size X e su 150 nel Size Y. Parlando invece degli altri pulsanti, non dovremo modificare alcun numero se non le loro Position Y, che dovranno scendere a 80 per il primo e 280 per il secondo.
Alle tre caselle manca tuttavia il testo, che si potrà aggiungere con l’integrazione di altrettanti Text, da trascinare e spostare sui relativi Button; il primo dovrà essere RESUME, il secondo invece MAIN MENU e l’ultimo infine QUIT, in modo tale da indicare delle selezioni utili al giocatore. Quel che ci manca da fare per concludere la costruzione del menu principale è aumentare i rispettivi Font a 50, donando un look di tutto rispetto al nostro menu delle opzioni.