Thanks for the response, 1, 2 and 3 are simple enough!
However MovementUpdate (and particularly FinalizePosition) seem to contain a lot of the code that I'm hoping to keep intact. When you say create a new MonoBehaviour, do you mean just for 1, 2 and 3? Or can all of this be handled from an external class? As reading through FinalizePosition it seems to move based on the current position. So if I move my agent prior to calling this, the values will be off?
I essentially just want to change line 530 of AIBase to use my own controller rather than a CharacterController. Is this possible using an external script?
I'm really sorry for the basic question, I'm going through the code but clearly missing something!