Download Free Audio of 5. Seleziona questo e vedrai il file Livello di s... - Woord

Read Aloud the Text Content

This audio was created by Woord's Text to Speech service by content creators from all around the world.


Text Content or SSML code:

5. Seleziona questo e vedrai il file Livello di stampa evento nodo, quale assomiglia agli altri nodi di eventi in Grafico evento: Figura 5.17: Il nodo Event Print Level Possiamo definire la funzionalità per Livello di stampa funzione qui in Blueprints. 6. Trascinare fuori dal pin di esecuzione dell'output e rilasciare. Quindi digitare "stringa di stampa" e selezionare Stringa di stampa. Figura 5.18: Richiamo della stringa di stampa dal livello di stampa 7. Fare clic con il pulsante destro del mouse su Grafico degli eventi e digita "ottieni livello attore" e Selezionare Ottieni il livello di attore. Ora vedrai un file Livello attore nodo. 8. Trascina il pin di output da Livello attore nell'ingresso In String pin nel Stringa di stampa nodo. Apparirà automaticamente una conversione da un intero a un nodo String, eseguendo la conversione per te. Figura 5.19: Implementazione del livello attore della stampa di eventi Adesso quando Livello di stampa viene chiamata, la funzionalità definita in Grafico degli eventi sarà effettuato. Abbiamo semplicemente bisogno di chiamare la funzione da qualche parte. Possiamo chiamare la funzione da Tick evento. 9. Trascinare fuori dal pin di esecuzione dell'output su Controlla la durata e digita "Livello di stampa" e selezionare Livello di stampa. Figura 5.20: Richiamo del livello di stampa in Begin Play Ora il Livello di stampa verrà chiamata ogni frame, stampando il valore corrente di Livello attore sullo schermo. Provare queste funzioni premendo Giocare e notando lo spamming di Viewport con il risultato di Stringa di stampa funzione. Quindi seleziona FirstActor_BP nel World Outliner e guarda il Livello attore variabile aggiornamento in tempo reale, aumentando di 1 ogni frame. Acquisiremo molta più esperienza nell'uso di queste capacità in questo libro. Ora che ne abbiamo un assaggio, siamo pronti per passare alla prossima funzionalità della classe Attore: i componenti. Componenti - Aggiunta di una mesh statica Componenti sono oggetti che appartengono ad altri oggetti. Un attore ha spesso bisogno di una rappresentazione visiva nel mondo, e questo è tipicamente sotto forma di una maglia. Il nostro progetto ha già diverse mesh, grazie al fatto che abbiamo scelto di includere il contenuto iniziale quando abbiamo creato il progetto. Sebbene sia possibile aggiungere facilmente componenti da Blueprint Editor, potremmo desiderare di creare il componente in C ++ in modo da avere una variabile che ci dia accesso al componente nel nostro codice di gioco. Noi creare un componente del tipo StaticMeshComponent ed esporlo a Blueprints. 1. Appena sotto le variabili ActorLifetime e ActorLevel, aggiungi: UPROPERTY (VisibleAnywhere, BlueprintReadWrite, Category = "Informazioni sui componenti") class UStaticMeshComponent * FirstActorMesh; Abbiamo creato un puntatore a StaticMeshComponent. Mentre le classi derivate dal tipo Actor hanno nomi con prefisso A, il nome del tipo StaticMeshComponent è preceduto da una U, a indicare che si basa sulla classe UObject e che non è un attore. Noterai anche l'uso della parola chiave class. Questo è noto come a dichiarazione in avanti –Un modo per dire al compilatore che l'intestazione per la classe in questione non è inclusa in questo file immediato, ma che sarà inclusa da qualche parte lungo la linea. Ciò soddisfa il compilatore quando si imbatte nel tipo di classe UStaticMeshComponent in un file che non contiene l'intestazione che lo definisce. Il compilatore, tuttavia, si aspetterà di vedere quel file di intestazione se la variabile di quel particolare tipo finisce per essere utilizzata. Useremo la variabile nel file . cpp file, quindi dovremo includere un file di intestazione lì. Dichiarandolo in avanti nel file. h file, ignoriamo il requisito di includere il suo file di intestazione lì, quindi dobbiamo solo includerlo dove è realmente necessario: il file. cpp file. Mantenendo al minimo la quantità di inclusione del file di intestazione, possiamo ridurre codice gonfio ( la tendenza per il codice a essere inutilmente grande). Allora come facciamo a sapere quale file di intestazione dovremo includere per il tipo UStaticMeshComponent? Un modo è controllare la documentazione ufficiale di Unreal Engine. Cercando "UE4 UStaticMeshComponent ”nel tuo motore di ricerca preferito, o visitando la pagina della documentazione ufficiale di Unreal Engine direttamente su https://docs.unrealengine.com puoi cercare nella documentazione il tipo di classe in questione. La ricerca di UStaticMeshComponent ti porterà alla documentazione per la classe, mostrando la gerarchia di ereditarietà per essa, così come altre informazioni tra cui il file di intestazione che devi includere per usare la classe. Figura 5.21: La pagina della documentazione per UStaticMeshComponent Useremo quindi l'inclusione fornita qui in. cpp file per FirstActor. 2. Aggiungi la seguente riga al file FirstActor.cpp file, appena sotto # includi "FirstActor.h" : # include "Components / StaticMeshComponent.h" Ora, quando usiamo il tipo in. cpp file, verrà definito e il compilatore sarà felice. Quindi, ora abbiamo una variabile chiamata FirstActorMesh, di tipo UStaticMeshComponent *, che è un puntatore. Ma in realtà non abbiamo creato un'istanza di questo tipo. Abbiamo semplicemente un puntatore, che è un indirizzo a una posizione di memoria, ma abbiamo bisogno di creare effettivamente uno StaticMeshComponent per riempire quella posizione di memoria. Abbiamo imparato in Capitolo 4 - Nozioni di base sulla programmazione C ++ che possiamo utilizzare la nuova parola chiave per creare dinamicamente un nuovo oggetto, ma poi dovremmo tenerne traccia e cancellarlo con la parola chiave delete quando avremo finito con esso. Ma in Unreal Engine, abbiamo la garbage collection, quindi noi in genere non utilizzare la nuova parola chiave. Allora come costruire il nostro componente? Si scopre che c'è uno speciale Funzione di fabbrica ( una funzione che crea un nuovo oggetto e restituisce quell'oggetto) progettato per crearne di nuovo suboggetti ( componenti appartenenti a un dato oggetto) nel costruttore di un oggetto. Questa funzione è chiamata CreateDefaultSubobject ed è una funzione modello (fare riferimento a Capitolo 4 - Nozioni di base sulla programmazione C ++ per ulteriori informazioni sulle funzioni del modello). 3. Creeremo il nostro nuovo componente aggiungendo le seguenti righe al costruttore, appena sotto PrimaryActorTick.bCanEverTick = true; : FirstActorMesh = CreateDefaultSubobject <UStaticMeshComponent> (TEXT ("FirstActorMeshComp")); SetRootComponent (FirstActorMesh); La funzione CreateDefaultSubobject accetta un parametro del tipo di modello, per il quale forniamo UStaticMeshComponent. L'argomento tra parentesi è una macro TESTO in cui forniamo un'etichetta di testo per il nostro componente (utilizzata internamente nell'etichettatura di questo oggetto). Questa chiamata di funzione determina la costruzione di un oggetto di tipo UStaticMeshComponent e ne restituisce l'indirizzo. Siamo quindi in grado di memorizzare quell'indirizzo nella variabile pointer che abbiamo creato, chiamata FirstActorMesh. 4. Ora che abbiamo creato il nostro nuovo componente, torna indietro nel file Blueprint Editor per FirstActor_BP e vedi FirstActorMesh nel nostro Componenti pannello: Figura 5.22: Il nostro componente FirstActorMesh 5. Fare clic su questo componente per selezionarlo. Una volta selezionato, il file Dettagli il pannello mostrerà ora le proprietà del nuovo Maglia statica Componente . Figura 5.23: Pannello dei dettagli per il componente mesh statico Tra queste proprietà c'è un Maglia statica proprietà. Questo può essere popolato con una mesh statica dal menu a discesa. 6. Seleziona Shape_QuadPyramid dall'elenco a discesa. La maglia apparirà nel file Viewport nel Blueprint Editor. Figura 5.24: Selezione di una piramide per la proprietà Mesh statica Ora abbiamo scelto Static Mesh per il nostro componente Static Mesh. Manovrando di nuovo al Editor di livelli, possiamo vederlo selezionando FirstActor_BP nel World Outliner e premendo il pulsante F chiave per concentrarsi sull'attore nel livello, il nostro attore ora ha una rappresentazione visiva: una piramide! Note sul componente mesh statico e sul componente mesh statico Il componente mesh statico non è un pezzo di geometria. Lo Static Mesh Component si basa sulla classe UStaticMeshComponent. La classe UStaticMeshComponent è una classe C ++ che contiene una serie di funzioni e variabili, una delle quali è di tipo UStaticMesh e si chiama StaticMesh. Questa variabile UStaticMesh è la mesh effettiva ed è questa variabile che stiamo popolando con i dati quando selezioniamo una mesh dal menu a discesa per Maglia statica proprietà nel Dettagli pannello.