19-03-2017, 12:50 AM
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:
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
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);
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