‫Ciao e Benvenuto.
‫In questa lezione, esamineremo una funzione speciale chiamata costruttore che ci consente di
‫fornire valori predefiniti alle proprietà nella nostra classe.
‫E vedremo quando verrà chiamato nell'editor.
‫Immergiamoci e scopriamolo.
‫Ora, con questo componente trigger, vorrei aggiungere una funzione del componente tick qui in
‫modo da poter controllare quali componenti, quali altri attori si stanno attualmente sovrapponendo a questo componente trigger
‫e potremmo attivare se è il giusto tipo di attore.
‫Il problema è che vedremo qual è il problema.
‫Proviamo a implementare una funzione tick se andiamo al grab per vedere come dovrebbe essere la
‫dichiarazione di una funzione componente, deve essere nella sezione pubblica.
‫È un vuoto virtuale, componenti tick, tempo delta.
‫Ci sono molti parametri, quindi copialo.
‫Vai all'intestazione del componente tick, aggiungilo sotto il nostro inizio di riproduzione e quindi copieremo quella
‫definizione, la riprenderemo nel nostro passaggio del componente trigger.
‫E una cosa che noterà è che ci sono un paio di parole chiave qui che possiamo rimuovere.
‫Possiamo rimuovere la parola chiave virtuale.
‫Questa è generalmente una regola che possiamo seguire.
‫Possiamo anche rimuovere la parola chiave override.
‫Queste sono cose che non devono essere presenti nel file C++.
‫Dobbiamo aggiungere il nome della classe.
‫Quindi provi un componente due punti, due punti, quindi sostituiamo il nostro punto e virgola con alcune parentesi graffe e dobbiamo
‫effettuare la chiamata al componente super tick.
‫Quindi, poiché è una chiamata piuttosto lunga, la copierò da e ne prenderò una copia e la incollerò in questo.
‫Ora ciò che sta facendo è essenzialmente chiamare la funzione del componente tick del genitore.
‫Quindi il genitore in questo caso è il nostro componente box.
‫Quindi è importante chiamarlo nel caso in cui ci siano funzionalità che devono essere utilizzate e abilitate affinché
‫questo componente funzioni.
‫Se non lo facciamo, stiamo essenzialmente bypassando una qualsiasi di queste funzionalità e le cose possono rompersi.
‫Quindi molto importante.
‫Ricorda sempre che è una chiamata a super quando stiamo implementando il componente start, play e tick.
‫Ora copiamo il nostro messaggio di registro da Begin Play e lo inseriamo nel componente tick invece di dire componente
‫tick.
‫L'accesso per dire che il componente tick sta spuntando qui e andremo avanti e compileremo e vedremo se quel
‫tick sta effettivamente funzionando.
‫Una volta terminato il compilatore, andiamo avanti e premiamo play, apriamo il nostro registro di output e.
‫Hmm, beh, sembra che non stia succedendo nulla ora.
‫La ragione di ciò è che per quanto riguarda l'ottimizzazione, la maggior parte dei componenti non è reale automaticamente ha il
‫segno di spunta disattivato.
‫Quindi gli attori di solito lo hanno attivato per impostazione predefinita, ma i componenti di solito lo hanno spento.
‫Quindi, in effetti, se osserviamo alcuni degli altri componenti che abbiamo, come la nostra mossa che sappiamo che il
‫ticchettio funziona per te, puoi vedere che nella parte superiore del file c'è questo.
‫Muovi una funzione e ha questo segno di spunta del componente primario, il punto B può mai spuntare uguale a vero
‫se non imposti questa proprietà sulla classe.
‫Quindi questa è una proprietà della classe come proprietà del classico componente principale tick ed è una struttura
‫che ha una B può avere una proprietà tick al suo interno.
‫Quindi quello che stiamo facendo qui è impostare questo valore predefinito sulla classe move quando la costruiamo.
‫Ecco cos'è questa funzione.
‫Si chiama costruttore ed è una funzione che viene chiamata ogni volta che creiamo un nuovo componente motore
‫per impostare automaticamente i valori predefiniti.
‫Possiamo impostare alcuni valori predefiniti nell'intestazione del file come abbiamo fatto con dovrebbe spostare il tempo di spostamento.
‫Ma un'alternativa a fare sempre nel file di intestazione è che possiamo effettivamente impostare queste proprietà
‫nel costruttore.
‫Ora vorrei che notassi la sintassi qui.
‫Se passiamo allo spostamento davanti al file, puoi vedere che un costruttore ha lo stesso nome
‫della classe.
‫Quindi il tuo motore è il nome della classe per i nostri componenti del motore e il suo costruttore è anche chiamato avviso del tuo
‫motore.
‫Non ha nemmeno un tipo di ritorno.
‫Non ha senso restituire nulla perché stiamo costruendo un nuovo oggetto.
‫Stiamo solo realizzando questa lezione.
‫Quindi tutto ciò di cui abbiamo bisogno è accedere alle proprietà di questa classe e notare anche che è impostata su public.
‫Quindi è nella sezione pubblica della nostra definizione di classe.
‫Quindi vorrei sfidarti ad abilitare il ticchettio per te stesso.
‫Quindi creerai un costruttore nell'intestazione e tieni presente quella sintassi che abbiamo visto sia
‫nei filmati di spostamento o H che nel grabber H, abiliterai il ticchettio, come abbiamo visto di nuovo in quegli
‫altri componenti nei loro file CP.
‫Quindi puoi solo copiare come viene fatto.
‫Puoi anche accedere dal costruttore per provare a vedere quando viene chiamato?
‫È come iniziare a giocare?
‫O viene chiamato prima di essere in gioco o cosa?
‫Vai e pubblica un video e provaci.
‫Bene.
‫Ben tornato.
‫Quindi entreremo nel nostro componente trig su H e creeremo una nuova sezione pubblica.
‫E qui stiamo ricordando i due punti alla fine e quindi dobbiamo chiamarlo esattamente come la
‫classe.
‫Quindi non è un componente trigger.
‫Non sei tu ad attivare, sei ad attivare i componenti per intero.
‫E poi non abbiamo argomenti in questo costruttore, quindi mettiamo solo parentesi vuote e poi un punto e
‫virgola alla fine della riga.
‫Ora possiamo passare al file CPP e possiamo fare l'implementazione qui.
‫Ancora una volta, non abbiamo bisogno di un tipo di ritorno.
‫Quindi sei solo tu a attivare i componenti, i due punti.
‫I due punti attivano componenti un po' ripetitivi, ma è così che funziona.
‫Quindi mettiamo alcune parentesi graffe e qui possiamo eseguire qualsiasi codice di configurazione per fornire i valori predefiniti
‫all'istanza della classe.
‫Quindi, se andiamo a prendere un CPP e diamo un'occhiata a cosa sta facendo, puoi vedere che ha
‫il suo componente principale tecnologico, il punto B può mai considerarlo uguale a vero.
‫Quindi scriviamolo.
‫Il punto di spunta del componente primario B può sempre spuntare B è solo un prefisso che usiamo spesso quando le cose
‫hanno un tipo booleano impostato uguale a vero con una t minuscola.
‫Quindi, poiché le modifiche a un costruttore non vengono sempre propagate correttamente nella codifica live,
‫chiuderò l'editor.
‫Ricostruirò dall'interno del codice di Visual Studio, quindi eseguirò il riavvio dal nuovo file di
‫progetto.
‫Quando ciò è fatto, vado avanti e premi play, dai un'occhiata al nostro registro di output.
‫E abbastanza sicuro, possiamo vedere che il componente trigger sta ticchettando.
‫Quindi rimuoverò quel messaggio di registro perché è fastidioso e chiuderò il registro di output nel
‫codice di Visual Studio, rimuoverò questo messaggio di registro nel componente tick.
‫Possiamo vedere che ora funziona.
‫E quello che volevamo fare era fare un log nel nostro costruttore.
‫Quindi facciamo un nuovo registro che dice costruzione, vediamo se il codice live può raccoglierlo questa volta e poi
‫andiamo al nostro registro di output e diamo subito un'occhiata.
‫Non compare niente qui.
‫Bene, se vado avanti e premo play, dai un'occhiata al mio registro di output.
‫Posso vedere il messaggio di registro che il componente trigger è vivo e molto prima di questo.
‫In realtà, puoi vedere che sta costruendo molto più avanti quando sta solo creando il mondo.
‫Inizia a costruire molto presto prima di iniziare ovviamente a giocare perché dobbiamo preparare il mondo intero prima
‫di iniziare a giocare.
‫Quindi succede quando premiamo play, ma in realtà succede anche nell'editor.
‫Quindi, se seleziono un attore qui e poi aggiungo un componente e aggiungo il nostro trigger, dai un'occhiata al mio
‫registro di output.
‫Quindi puoi vedere che il messaggio di costruzione è stato effettivamente stampato.
‫Quindi dobbiamo stare attenti a ciò che facciamo nei nostri costruttori perché in realtà vengono chiamati il codice
‫C++ viene chiamato proprio quando stiamo modificando, nemmeno giocando.
‫Questi oggetti vengono creati e quindi impostati e quindi devono chiamare il loro costruttore.
‫Andrò avanti ed eliminerò di nuovo il trigger e chiarirò un po' rimuovendo, costruendo un messaggio di
‫registro e anche il nostro messaggio di registro di inizio riproduzione.
‫Roba fantastica.
‫Quindi in questa lezione abbiamo visto come possiamo impostare i nostri componenti in modo che siano quasi identici a quelli creati
‫nei modelli per i componenti della scena e i componenti ACT.
‫Abbiamo visto come usare un costruttore per dare valori predefiniti alle proprietà nella nostra classe.
‫Ci vediamo alla prossima lezione.