• Benvenuto in Making Videogames!
  • Dai sfogo alla tua fantasia!
  • Crea il tuo Videogioco!
Benvenuto ospite! Login Registrati




Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Spawning da trigger box
#1
Allora devo sbagliare in qualcosa ma non riesco a capire cosa perchè nella testa mia il bluprint è logico.
In pratica quando il personaggio passa attraverso un trigger box parte lo spawning dei nemici e quando esce dal trigger lo spawn cessa.
Tralasciando per ora quando esce concentriamoci sull'entrata visto che quando funziona questa poi l'uscita è automaticamente simile.

Ho creato un blu print class trigger box e l'ho inserito nel livello dandogli le dimensioni che mi servono.
Poi, se ho ben capito, basta riferirlo nel bluprint del livello per usarlo come trigger per lo spawner.
Allego il bluprint che ho usato.

https://ibb.co/dVF5Ww

Come potete vedere è piuttosto semplice: inizia con un beginactoroverlap (riferito al trigger box) e ha un check per assicurarsi che si attiva solo quando passa il pawn del giocatore. Poi ha un delay randomizzato che genera lo spawning in maniera varia e successivamente lo spawn actor from class riferito all'asset "f5".
In teoria dovrebbe funzionare eppure non spawna un bel niente. 

La mia idea è quella di aggiunger poi un actorendoverlap per stoppare lo spawning e poi aggiungere altri triggers nel livello per generare altre ondate di quel nemico.
 
Rispondi
#2
4 cose:
1-Hai dimenticato dove c'è == di mettere il character (oppure aggiungi un get player character)
2- nel nodo transform dello Spawn ti conviene inserire le coordinate di dove lo vuoi far apparire (X, Y Z , le 3 rotazioni e i 3 valori di scala) perchè il self nel livello non so cosa o dove ti potrebbe prendere. Per farlo usa questo comando https://docs.unrealengine.com/latest/INT...Transform/
3- Controlla le collisioni che siano impostate in modo tale che l'overlap funziona
4- Se vuoi che la generazione di nemici si ferma ti conviene creare una variabile Booleana e impostarla che se è vera il nemico spawna, se è falsa no...

Per controllare il blueprint ti conviene lasciarlo aperto in un'altro monitor e lanciare il gioco... se il comando si attiva vedrai una linea gialla percorrere il blueprint aperto e puoi controllare in che parte del codice si ferma.
Ciao
 
Rispondi
#3
(22-01-2018, 11:46 PM)SMarco Ha scritto: 4 cose:
1-Hai dimenticato dove c'è == di mettere il character (oppure aggiungi un get player character)
2- nel nodo transform dello Spawn ti conviene inserire le coordinate di dove lo vuoi far apparire (X, Y Z , le 3 rotazioni e i 3 valori di scala) perchè il self nel livello non so cosa o dove ti potrebbe prendere. Per farlo usa questo comando https://docs.unrealengine.com/latest/INT...Transform/
3- Controlla le collisioni che siano impostate in modo tale che l'overlap funziona
4- Se vuoi che la generazione di nemici si ferma ti conviene creare una variabile Booleana e impostarla che se è vera il nemico spawna, se è falsa no...

Per controllare il blueprint ti conviene lasciarlo aperto in un'altro monitor e lanciare il gioco... se il comando si attiva vedrai una linea gialla percorrere il blueprint aperto e puoi controllare in che parte del codice si ferma.
Ciao

Allora...quel bluprint cosi com'è funziona bene a se stante...io però devo triggerarlo ed è con la trigger box che non mi funziona.
Il character nella funzione == c'era già...non si legge bene ma c'è scritto sidescrollercharacter.
ho provato inserendo il make transform ma non cambia niente.
Forse è un problema di collisioni...ci ho pensato comunque le collisioni sono impostate cosi:

per il trigger è come di default ossia collision presets "trigger" object type "world dynamic" le impostazioni sono tutte su overlap.
nel mio pawn invece sono in custom e tutte su block...object type "pawn". ho provato a mettere su overlap i worldynamic in modo da farlo vedere al trigger che è world dynamic ma niente.
 
Rispondi
#4
La cosa interessante è che le collisioni in generale le vede.
Ad esempio i proiettili sparati dal pawn sono vehicle...se io metto sulla trigger box l'impostazione "block" per i vehicle mi blocca tutti i proiettili che sparo.
Idem se metto block per il pawn me lo blocca, però se metto overlap per il pawn non succede niente!
 
Rispondi
#5
Ragazzi ho risolto! Le collisioni non centravano niente...il punto è che la soluzione del problema per me non è razionale!
In pratica quando all'inizio la funzione == fa il check per assicurarsi che l'overlap sia solamente del pawn mi è bastato scollegare sul branch il pin "true" e collegare invece quello "false".
La cosa non è logica perchè il triggering deve partire quando è vero che l'overlap lo genera il pawn e non una entità qualsiasi. Ho fatto anche la prova mettendo dentro al trigger box un nemico che si muove da solo (usa projectile movement) e il trigger non parte!
In poche parole è una logica inversa...bò!
Mi rimane da implementare la booleana che limita il numero di nemici spawnati...potete dirmi come va applicata?
 
Rispondi
#6
Scusa se non ti avevo più rispsoto ma ieri è stata una giornata piena...
Per limitare i nemici basta:
1- Crei una variabile tipo integer (INT) che sarà il numero di nemici spawnati (es. chiamala NEMICI)
2- Appena dopo il branch, metti un altro branch con condizione NEMICI<=X dove X è il numero massimo che vuoi. Il resto del codice lo colleghi sull'uscita TRUE
3- Appena dopo il comando che Spawna i nemici crei un SET (SET NEMICI) e incrementi di 1 la variabile del passo 1.
Ciao
 
Rispondi
#7
Un'altra domanda... ma la tua astronave che tipo di oggetto è ?? Non è un character ?
 
Rispondi
#8
Non funziona in quel modo....prima di tutto il branch vuole una variabile booleana e non integer...e la booleana non permette di impostare un valore numerico.
Inoltre se all'uscita dello spawn actor metto il set non posso poi collegarlo al delay e quindi non avrei la temporizzazione random dello spawning.

L'astronave è un pawn perchè?
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Come mai non funziona il trigger!? 3ddevid 9 1,201 25-08-2012, 02:14 PM
Ultimo messaggio: 3ddevid

Vai al forum:


Browsing: 2 Ospite(i)