While porting the project to UE4 4.6 I came across a issue i cant seem to find a work arround for…
I have UBehaviorTree pointer inside my AI Character class which i simply use to initialize its controller behavior tree, it was working fine in UE4 4.5, In 4.6 i get a compiling error about no possible conversion function from UBehaviorTree to UBehaviorTree* exists, a quick search lead me that i simply needed to dereference the pointer, So i did that
void ATTCustomerAIController::Possess(APawn* InPawn)
{
Super::Possess(InPawn);
ATTCustomerCharacter* Bot = Cast<ATTCustomerCharacter>(InPawn);
// start behavior
if (Bot && Bot->BotBehavior)
{
//BlackboardComp->InitializeBlackboard(Bot->BotBehavior->BlackboardAsset);
BehaviorComp->StartTree(*(Bot->BotBehavior));
//RunBehaviorTree(Bot->BotBehavior);
}
}
Yet it still doesnt compile, according to the compiler the error is
cannot convert argument 1 from 'UBehaviorTree' to 'UBehaviorTree *'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
and the Pointer to the behavior tree
UPROPERTY(EditAnywhere, Category = Behavior)
class UBehaviorTree *BotBehavior;