• 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
Delegare un metodo per la gestione delle collisioni
#1
Eccomi ancora, ho girato tutto il possibile immaginabile e ho notato che la documentazione di UE è a dir poco scandalosa,
comunque...sto tentando di ricreare il progetto di unity della sfera che ruota dove bisogna collezionare i cubi, e nel creare la classe del cubo ho un problema, la gestione delle collisioni per l'appunto. L'obiettivo e distruggere il cubo e accumulare il punto, per farlo devo "creare" un metodo per rilevare la collisione. A tal fine ho trovato OnComponentHit.Add() ho capito che come parametro ci va un delegato ovvero (se ho ben capito) un metodo da chiamare quando occore quell'evento (un pò come succede per l'input). Dopo questa infinita prefazione, il codice è il seguente:

Codice:
UPROPERTY()
    class UShapeComponent* collider;
collider->OnComponentHit.Add(&AtoCatch::OnHit);
UFUNCTION()
    void OnHit(AActor* other, class UPrimitiveComponent* otherComp, FVector normalImpulse, const FHitResult& hit);
Ottenendo il seguente errore:

Errore (attivo) non esiste alcun costruttore adatto per eseguire la conversione da "void (AtoCatch::*)(AActor *other, UPrimitiveComponent *otherComp, FVector normalImpulse, const FHitResult &hit)" a "TScriptDelegate<FWeakObjectPtr>" Rolling_learn_cpp c:\Users\Samuele\Documents\Unreal Projects\Rolling_learn_cpp\Source\Rolling_learn_cpp\toCatch.cpp 17

non so cosa fare, con cose basilari in quanto essenziali come le collisioni la documentazione è carente, figuriamoci con cose di più alto livello...non mi sorprende che Unity sia più popolare -.- Ah gia...grazie per la considerazione :3
 
Rispondi
#2
Trovata la risposta...se non venivo qui a rompere non l'avrei trovata, sperduta in quel blog...comunque ecco qui spero possa esser d'aiuto per qualcuno:
<code>
TScriptDelegate<FWeakObjectPtr> delegateFunction;
delegateFunction.BindUFunction(this, "nomeDelMetodo");

// Say when you want the delegate function to be run (in this case, On overlap of components)

CollisionSphere->OnComponentHit.Add(delegateFunction);
</code>
 
Rispondi
#3
Grazie, potrebbe tornare utile!
 
Rispondi
  


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Scarico delle astronavi Dead Space 3 767 02-02-2018, 01:19 PM
Ultimo messaggio: SMarco
  Stramaledette collisioni...ma come cavolo funzionano? Dead Space 2 642 27-11-2017, 12:54 PM
Ultimo messaggio: Dead Space
  Collisioni causano diseallineamento della posizione tra server e client Reaver47 0 510 01-02-2017, 11:40 AM
Ultimo messaggio: Reaver47
  Collisioni (AIUTO) SuperBobone 4 1,569 30-03-2015, 04:57 PM
Ultimo messaggio: SuperBobone
  Problema collisioni UDK con edifici springofdajuwn 13 3,355 20-05-2014, 10:10 PM
Ultimo messaggio: jotaro801
  Aggiungere collisioni a una skeletal mesh UDK95 4 1,582 23-08-2012, 01:52 PM
Ultimo messaggio: nicola1996

Vai al forum:


Browsing: 1 Ospite(i)