Making full-screen scrolling more smooth

I have been experimenting with what are essentially 2D game mechanics and found that I could get far smoother scrolling in native C++ code on the iPhone than I can with Unity. I simplified my test down in Unity to a single plane with a single texture, and linear interpolation over time to move an orthogonal camera from one side of the plane to the other. Texture size is small, no lights, the most basic mobile shader for rendering. I don’t know how to describe the difference, but the native code moves smoothly enough that it could be a physical picture moving… the unity version seems to be lower FPS and kind of “flickery”. Not that the picture itself flickers in and out, but the motion just isn’t as smooth. The interesting thing is that native code on Android seems to do the more flickery motion just like Unity, but iOS shows a stark difference.

Is there any way to get ultra-smooth full-screen scrolling, or is the unity engine mono too much overhead?

use a different type of rendering - event handling loop

Few quick questions pop into mind:

  1. What loop-type are you telling Unity to use? See “USE_DISPLAY_LINK_IF_AVAILABLE” “FALLBACK_LOOP_TYPE” in AppController.mm.

  2. What frame-rate are you telling Unity to use? See “kFPS”, again, in AppController.mm

  3. Are you updating in Update() as opposed to FixedUpdate()?

  4. Are you making use of Time.deltaTime?

Thanks, changing the loop type and target framerate made the sample project much more smooth. Now to optimize my actual game. :slight_smile: