Search Unity

Making full-screen scrolling more smooth

Discussion in 'iOS and tvOS' started by beezir, Feb 25, 2011.

  1. beezir

    beezir

    Joined:
    Apr 3, 2009
    Posts:
    133
    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?
     
  2. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    use a different type of rendering - event handling loop
     
  3. DGuy

    DGuy

    Joined:
    Feb 7, 2007
    Posts:
    187
    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?
     
  4. beezir

    beezir

    Joined:
    Apr 3, 2009
    Posts:
    133
    Thanks, changing the loop type and target framerate made the sample project much more smooth. Now to optimize my actual game. :)