Unable to find USpringArmComponent attatched to parent object
I am currently attempting to reference an attached spring arm that is a child component of an actor. See image:
From the UOrbitalCamera class, I have declared a pointer to the Spring Arm like this:
In the beginplay function, I attempt to find the SpringArm, and added some validation to protect against a null pointer. It compiles fine, and When i run the game, I can see the output confirming that a SpringArm has been found.
I have another, public function called "Zoom". This is called from another class. I have confirmed that the function is being called successfully, because of the UE_LOG output during runtime. However, at this point it appears as though the pointer has reverted to a null pointer??? The validation prevents a crash but If i remove it, the editor crashes, and I assume that I encounter a nullptr ex...
I really have no idea why this isn't working, I am new to C++ and may have missed something but this does not seem to be the case...
It might be worth noting that when I tried to expose SpringArm as a UPROPERTY(EditAnywhere) and reference the component in the editor, there was no SpringArm available in the drop-down menu. Maybe that is related.
EDIT: I figured this one out myself.
I got a clue when I realised that my variables were resetting themselves during run-time.
The class from which I was calling the Zoom function, had a reference to this (UOrbitalCamRig) as a TLazyObjecPtr. I dont know enough about c++ yet to understand why it was screwing it up, but it was... I guess it really is a lazy pointer!!!
Either way, I switched it over to a normal pointer and located this class using the actor iterator (LINK). It all works now.
Follow this question
Once you sign in you will be able to subscribe for any updates here