Выглядит всё очень замудрённо, особенно с этими хитрыми проверками и кастами. Мне кажется, там слишком много ненужного, и вместо того чтобы копаться в куче сложного кода, проще бы сначала базово проверить, что указатели валидные и камера не даёт nullptr. Вдруг вся проблема именно в этом, а не в хитрой логике с GetAiming и прочим. Без этого вся остальная красота просто повиснет.