Но мне кажется должны быть способы лучше
это извечный философский вопрос, можно так, можно на BeginPlay компонента изнутри достать камеру и CharacterMovement (последний через GetCharacterMovement()), первый - через FindComponentByClass()
Минус первого способа в том, что инициализацию надо дёргать руками на каждом новом классе, плюс в том, что легко контролировать порядок инициализации, и легко закинуть эти компоненты просто через блюпринты