Search Unity

How to use different textures for different devices?

Discussion in 'Android' started by TOES, Aug 18, 2017.

  1. TOES


    Jun 23, 2017
    I am porting an existing iOS game to Android, and I need to support both very old devices as well as the most recent ones.

    For old phones I need to use very low texture quality and resolution, or they will run out of memory. But for new phones I need to use a better, high resolution set of the same textures, or the graphics would suck.

    I only found two options:

    1. Assign textures dynamically while running, based on what device is detected.
    2. Build separate APKs with different textures in them.

    The problem with 1 in this case is that I am porting an existing game, and I cannot see any practical way of changing all the large number of texture references into dynamic ones.

    The problem with 2 is that it seems Unity only seems to allow one texture profile per OS. But, to be able to make separate APKs like described above, I need to add a custom platform profile. Like "Android LowMem", "Android HighMem" etc, so that I can switch between them to build separate APKs.

    I thought I could do this manually by selecting all the textures and then changing the maxSize parameter, but that messed up settings for compression settings which has to be set individually.

    I also tried to change this through quality settings, but this only let you choose the default mipmap level, which wont help memory wise and the game does not use mipmaps anyway.

    What is the recommended way of doing this?
  2. magehernan


    Jul 6, 2012
    i have the same problem, i can't find a solution for it, you found a solution?