Smoother camera in First Person Controller Prefab?

Hello -

I’m having issues with camera smoothness on a prototype for a first-person game. I couldn’t find anything among the current answers list; I’m hoping someone can help.

I started my prototype with the hand-written 1st person controller from the youtube videos by quill18creates: Unity 3d: Simple First-Person Shooter Tutorial - Part 6 - YouTube Quill’s controller had a smooth camera, which let me add a crosshair (projected in 3D space) that was equally smooth. The crosshair remained locked in place no matter how fast I moved the camera.

I decided to switch to Unity’s 1st Person Controller prefab, and found that its camera seemed significantly less smooth. Mouselook is uneven, and the crosshair that’s projected into 3D space is shaking in place, as it’s being positions a frame after the camera updates.

Is there a way to improve the camera for the 1st person controller prefab? Should I do something specific to synchronize my crosshair updates with the update behavior of the controller and camera? Or is this a normal issue with the 1st person controller prefab?

Thanks for your help.

– Slapworth

UPDATE: I should clarify that the crosshair is projected into 3D space to enable depth-related gameplay feedback; so pushing the crosshair into an OnGUI call is a non-desirable solution.

::reads about LateUpdate()::

::smacks head::

I’m not sure if this is the only or best way to fix the problem, but pushing the crosshair update to LateUpdate() fixed this for me.

Is there another way to synchronize updates? Could/should I directly call UpdateCrosshair from within the FPS Controller scripts? (There’s other gameplay associated with the crosshair’s input, which as the prototype expands, may or may not care about where it occurs in the update sequence.