Legacy Documentation: Version 2018.2 (Go to current version)
Single-Pass Stereo Rendering for Android
Android 2D Textures Overrides
Other Versions

Android Player Settings

This page details the Player SettingsA settings manager that lets you set various player-specific options for the final game built by Unity. More info
See in Glossary
specific to Android. For a description of the general Player Settings, see documentation on PlayerSettings.


The Icon section of the Android PlayerSettings window
The Icon section of the Android PlayerSettings window
Property: Function:
Adaptive Set up textures for the Android Adaptive icons in your app.
Round Set up textures for the Android Round icons in your app.
Legacy Set up textures for the Android Legacy icons in your app.
Enable Android Banner Enables a custom banner for Android TV builds.

Resolution And Presentation

The Resolution and Presentation section of the Android PlayerSettings window
The Resolution and Presentation section of the Android PlayerSettings window
Property: Function:
Resolution and Presentation
Preserve framebuffer alpha Enable Unity to render on top of native Android UI(User Interface) Allows a user to interact with your application. More info
See in Glossary
. The cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary
’s Clear Flags have to be set to Solid color with an alpha less than 1 for this to have any effect. (OpenGL ES only).
Resolution Scaling
Resolution Scaling Mode This option can be used to render the sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
on the target device at a resolution lower than screen resolution.
    Disabled Render at full screen resolution.
    Fixed DPI Render at resolution potentially lower than screen resolution.
Target DPI When Resolution Scaling Mode is set to Fixed DPI, this setting determines how much lower the target rendering resolution is going to be. The scale is calculated as min(Target DPI * Factor / Screen DPI, 1). Factor is controlled by Quality Settings.
Blit Type Controls whether a blitA shorthand term for “bit block transfer”. A blit operation is the process of transferring blocks of data from one place in memory to another.
See in Glossary
is used to present the final image to the screen.
    Always (Always blit) Make Unity render to an offscreen buffer and then copy to the system framebuffer. This is compatible with most devices, but is usually slower than Never blitting.
    Never (Never blit) Make Unity render to the framebuffer provided by the OS. If a condition arises during application run time that causes this to fail, the application will print a one-time warning to the device log. Never blitting is usually faster than Always blitting, but it’s not compatible with all devices.
    Auto Make Unity render to the framebuffer provided by the OS, if possible. If a condition is met that prevents your application from rendering to the system framebuffer, the application switches to offscreen rendering and issues a warning to the device console.
Support Aspect RatioThe relationship of an image’s proportional dimensions, such as its width and height.
See in Glossary
Aspect Ratio Mode The aspect ratio for the device. Choose from: Legacy Wide Screen (1.86), Super Wide Screen (2.1) and Custom. When you select Custom, an Up To field appears. Use this to set a maximum screen width.
Default Orientation Set the application’s screen orientation.
    Portrait Orient the screen so that the device’s Home button is at the bottom.
    Portrait Upside Down Orient the screen so that the device’s Home button is at the top.
    Landscape Left Orient the screen so that the device’s Home button is on the right-hand side.
    Landscape right Orient the screen so that the device’s Home button is on the left-hand side.
Allowed Orientations for Auto Rotation
(Only visible when Default Orientation is set to Auto Rotation)
Portrait Allow portrait orientation.
Portrait Upside Down Allow portrait upside-down orientation.
Landscape Right Allow landscape right orientation (home button is on the left side).
Landscape Left Allow landscape left orientation (home button is on the right side).
Use 32-bit Display Buffer Specifies if the Display Buffer should be created to hold 32-bit color values (16-bit by default). Use it if you see banding, or need alpha in your post-processed effects, because they create Render TexturesA special type of Texture that is created and updated at runtime. To use them, first create a new Render Texture and designate one of your Cameras to render into it. Then you can use the Render Texture in a Material just like a regular Texture. More info
See in Glossary
in the same format as the Display Buffer.
Disable Depth and Stencil Tick this checkbox to disable the depth and stencil buffersA memory store that holds an 8-bit per-pixel value. In Unity, you can use a stencil buffer to flag pixels, and then only render to pixels that pass the stencil operation. More info
See in Glossary
Show Loading Indicator The type of loading progress indicator that should be shown. Options are Don’t Show, Large, Inversed Large, Small and Inversed Small.

Splash Image

Property: Function:
Virtual Reality Splash Screen Specify the texture that should be used for the Android splash screen on a Virtual RealityA system that immerses users in an artificial 3D world of realistic images and sounds, using a headset and motion tracking. More info
See in Glossary
Android Splash Screen Specify the texture that should be used for the Android splash screen. The standard size for the splash screen image is 320x480.
Splash Scaling Specify how the splash image is scaled to fit the device’s screen. The options are Center (only scale down), Scale to Fit (letter-boxed) and Scale to Fill (cropped).

See also Unity Splash Screen settings.

Other Settings


The <span class=RenderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info<span class="tooltipGlossaryLink">See in Glossary</span> section of the Android PlayerSettings window">
The RenderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
section of the Android PlayerSettings window
Property: Function:
Color Space The Color Space used for your application. See Linear Lighting for more information.
Auto Graphics API Check this to make Unity auto-select a graphics API from the Open Graphics Library (OpenGL). When checked, Unity will try GLES3.1, and fall back to GLES3 or GLES2 if the device does not support GLES3.1. When unchecked, you can manually pick and reorder the graphics APIs. If only GLES3 is in the list, two additional checkboxes; Require ES3.1 and Require ES3.1+AEP appear, allowing you to force the corresponding graphics API.

Important: GLES3/GLES3.1/AEP requirement is added to your Android manifest only if GLES2 is not in the list, and Minimum API Level is set to JellyBean (API level 18) or higher. In this case only, your application won’t show up on unsupported devices in Google Play Store.
Multithreaded Rendering Check this box to move graphics API calls from Unity’s main thread to a separate worker thread. This can help to improve performance in applications that have high CPU usage on the main thread.
Static BatchingA technique Unity uses to draw GameObjects on the screen that combines static (non-moving) GameObjects into big Meshes, and renders them in a faster way. More info
See in Glossary
Check this box to use Static batching on your build (enabled by default).
Dynamic BatchingAn automatic Unity process which attempts to render multiple meshes as if they were a single mesh for optimized graphics performance. The technique transforms all of the GameObject vertices on the CPU and groups many similar vertices together. More info
See in Glossary
Check this box to use Dynamic Batching on your build (enabled by default).
GPU Skinning Check this box to enable OpenGL ES 3 GPU skinning. To learn more about GPU skinning, see the Wikipedia page on skeletal animation.

Note that this property only supports VR apps, and only works if the Virtual Reality Supported checkbox is ticked.
Graphics Jobs (Experimental) Check this box to instruct Unity to offload graphics tasks (render loops) to worker threads running on other CPU cores. This is intended to reduce the time spent in camera.render on the main thread. This feature is experimental. it may not deliver a performance improvement for your project, and may cause instabilities.

Graphics Jobs are currently only supported when using Vulkan and the checkbox has no effect when using OpenGL ES.
Virtual Reality Supported Enable this if your application is a virtual reality application, then add the required VR SDKs to the list.
Protect Graphics Memory Check this box to force the graphics buffer to be displayed only through a hardware-protected path. Works only on devices which support it.

Vulkan Settings

The Vulkan Settings section of the Android PlayerSettings window
The Vulkan Settings section of the Android PlayerSettings window
Property: Function:
Enable SetSRGBWrite() Use SRGB write mode during the frame. This may decrease performance, especially on tiled GPUs.
Use SW Commandbuffers Build the command buffers in the task executor thread instead of building secondary command buffers for rendering API calls.


The Identification section of the Android PlayerSettings window
The Identification section of the Android PlayerSettings window
Property: Function:
Package Name The unique application ID, used to uniquely identify your app on the device and in Google Play Store. (Shared between iOS and Android.)
Version Specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The version is specified in the common format of a string containing numbers separated by dots (eg, 4.3.2). (Shared between iOS and Android.)
Bundle Version Code An internal version number. This number is used only to determine whether one version is more recent than another, with higher numbers indicating more recent versions. This is not the version number shown to users; that number is set by the versionName attribute. The value must be set as an integer, such as “100”. You can define it however you want, as long as each successive version has a higher number.

For example, it could be a build number. Or you could translate a version number in “x.y” format to an integer by encoding the “x” and “y” separately in the lower and upper 16 bits. Or you could simply increase the number by one each time a new version is released.

Keep this number under 100000 if Split APKs by target architecture is enabled. Each APK must have a unique version code so Unity adds 100000 to the number for ARMv7, 200000 for ARM64 and 300000 for x86.
Minimum API Level Minimum Android version (API level) required to run the application.
Target API Level Target Android version (API level) against which to compile the application.


The Configuration section of the Android PlayerSettings window
The Configuration section of the Android PlayerSettings window
Property: Function:
Scripting Runtime Version Choose which .NET runtime to use in your project. For more details, see Microsoft’s .NET documentation.
     .NET 3.5 Equivalent A .NET runtime which implements the .NET 3.5 API. This is the default scripting runtime.
     .NET 4.x Equivalent A .NET runtime which implements the .NET 4 API. This API is newer than .NET 3.5, and as such, it offers access to more APIs, is compatible with more external libraries, and supports C# 6.
Scripting BackendA framework that powers scripting in Unity. Unity supports three different scripting backends depending on target platform: Mono, .NET and IL2CPP. Universal Windows Platform, however, supports only two: .NET and IL2CPP. More info
See in Glossary
Select your scripting backend. There are two options: IL2CPP or Mono2x. The default is Mono2x.
    IL2CPP Choose this to set ILC2PP as your scripting backend. See Unity documentation on IL2CPPA Unity-developed scripting back-end which you can use as an alternative to Mono when building Projects for some platforms. More info
See in Glossary
for more information.
    Mono2x Choose this to set Mono2x as your scripting backend. This is the default option. See Mono’s documentation for more information.
API Compatibility Level Specifies active .NET API profile. See below.

.Net 2.0:NET 2.0 libraries. Maximum .NET compatibility, biggest file sizes

.Net 2.0 Subset: Subset of full .NET compatibility, smaller file sizes
Mute Other Audio Sources) Stops or allows audio from other applications to play in the background while your Unity application is running. Enable this and your Unity application stops audio from background applications, disable this and audio from background applications continue to play alongside your Unity application.
Disable HW Statistics By default, Unity Android applications send anonymous HW statistics to Unity. This provides you with aggregated information to help you make decisions as a developer. Find these statistics at http://stats.unity3d.com/. Check this option to stop Unity sending these statistics.
Target Architectures Allows the application to run on the specified CPUs. Note: Running Android apps in a 64-bit environment has performance benefits and 64-bit apps can address more than 4 GB of memory space.
Split APKs by target architecture Create a separate APKThe Android Package format output by Unity. An APK is automatically deployed to your device when you select File > Build & Run. More info
See in Glossary
for each the CPU architectures selected in Target Architectures. This makes download size smaller for Google Play Store users. This is primarily a Google Play store feature and may not work in other stores. For more details, refer to Multiple APK Support.
Install Location Specifies application install location on the device (for detailed information, refer to Android Developer documentation on install locations.
    Automatic Let the operating system decide. User will be able to move the app back and forth.
    Prefer External Install the application to external storage (SD card) if possible. The operating system does not guarantee it; if not possible, the app will be installed to internal memory.
    Force Internal Force the application to be installed to internal memory. The user will be unable to move the app to external storage.
Internet Access When set to Require, this adds the networkingThe Unity system that enables multiplayer gaming across a computer network. More info
See in Glossary
(INTERNET) permission to the Android manifest, even if you are not using any networking APIs. This is enabled by default for development buildsA development build includes debug symbols and enables the Profiler. More info
See in Glossary
Write Access When set to External(SDCard) , enables write access to the external storage such as the SD card and add a corresponding permission to the Android manifest. Enabled by default for development builds.
Sustained Performance Mode Set a predictable and consistent level of device performance over longer periods of time, without thermal throttling. Overall, performance might be lower when this setting is enabled. Based on the Android Sustained Performance API.
Android TV Compatibility Check this box to mark the application as Android TV compatible.
Android Game Android TV - Check this box to mark the output package (APK) will as a game rather than a regular application.
Android Gamepad Support Level Android TV - This option allows you to define the level of support your application offers for a gamepad. The options are Works with D-Pad, Supports Gamepad and Requires Gamepad.
Scripting Define Symbols Custom compilation flags (see the platform dependent compilation page for details).


The Optimization section of the Android PlayerSettings window
The Optimization section of the Android PlayerSettings window
Property: Function:
Prebake Collision__ Meshes||Check this box to add collision__A collision occurs when the physics engine detects that the colliders of two GameObjects make contact or overlap, when at least one has a rigidbody component and is in motion. More info
See in Glossary
data to meshes at build time.
Keep Loaded Shaders__ Alive||Check this box to prevent shaders__A small script that contains the mathematical calculations and algorithms for calculating the Color of each pixel rendered, based on the lighting input and the Material configuration. More info
See in Glossary
from being unloaded.
Preloaded Assets An array of assetsAny media or data that can be used in your game or Project. An asset may come from a file created outside of Unity, such as a 3D model, an audio file or an image. You can also create some asset types in Unity, such as an Animator Controller, an Audio Mixer or a Render Texture. More info
See in Glossary
to be loaded when the application starts up.
Stripping Level Options to strip out scripting features to reduce the output package (APK) size (This setting is shared between iOS and Android platforms, and is available with the Mono scripting backend only.)
Disabled No reduction is done.
Strip Assemblies Level 1 size reduction.
Strip ByteCode (iOS only) Level 2 size reduction (includes reductions from Level 1).
Use micro mscorlib Level 3 size reduction (includes reductions from Levels 1 and 2).
Strip Engine Code Enable code stripping. (This setting is only available with the IL2CPP scripting backend.)
Enable Internal profiler Check this box if you want to get the profilerA window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating or in your game logic. More info
See in Glossary
data from your device in the Android SDK’s adblogcat output while testing your projects (only available in development builds).
Vertex Compression Select which vertex channels should be compressed. CompressionA method of storing data that reduces the amount of storage space it requires. See Texture Compression3D Graphics hardware requires Textures to be compressed in specialised formats which are optimised for fast Texture sampling. More info
See in Glossary
, Animation CompressionThe method of compressing animation data to significantly reduce file sizes without causing a noticable reduction in motion quality. Animation compression is a trade off between saving on memory and image quality. More info
See in Glossary
, Audio Compression, Build Compression.
See in Glossary
can save memory and bandwidth but precision will be lower.
Optimize Mesh__ Data__ Remove any data from meshes that is not required by the material applied to them (tangents, normals, colors, UV).
Logging Enable different logging types (see the StackTraceLogType page for details).

API Compatibility Level

You can choose your Mono API compatibility level for all targets. Sometimes a 3rd party .NET DLL uses the APIs that are not included into the .NET compatibility level you would like to use. In order to investigate such cases, get a reflection tool like ILSpy on Windows, and check the dependencies of the DLLs.

Publishing Settings

Property: Function:
Use Existing Keystore / Create New Keystore Use this to choose whether to create a new Keystore or use an existing one. You can use the Browse Keystore button to select a Keystore from the filesystem.
Keystore password Create a password for the Keystore.
Confirm password Enter the same password you did in Keystore password (only enabled if the Create New Keystore option is selected).
Alias Key alias.
Password Password for key alias.
Split Application Binary Enable this option to split your output package into main (APK) and expansion (OBB) packages. This is required to publish applications larger than 100 MBytes to Goolge Play Store.

Note that for security reasons, Unity does not save the KeystoreAn Android system that lets you store cryptographic key entries for enhanced device security. More info
See in Glossary
password or the KeyCan refer to an Input Key or an Animation Key
See in Glossary
password. Also, note that the signing must be done from Unity’s Playersettings, jarsigner does not work. The unsigned debug keystore is located by default at ~/.android/debug.keystore on MacOS and %USERPROFILE%.android\debug.keystore on Windows.

XR settings

Property: Function:
XRAn umbrella term encompassing Virtual Reality (VR), Augmented Reality (AR) and Mixed Reality (MR) applications. Devices supporting these forms of interactive applications can be referred to as XR devices. More info
See in Glossary
Virtual Reality Supported Enable native VR support for the Unity Editor and your game builds.
ARCore Enable use of Google’s ARCore platform.
XR Support Installers
Vuforia Augmented Reality Supported Enable use of the Vuforia Software Development Kit. You must have a Vuforia Software License and agree to the terms of that license before the property becomes enabled.


Bundle Identifier

The Bundle Identifier string is the unique name of your application when published to Google Play Store and installed on the device. The basic structure of the identifier is com.CompanyName.GameName, and can be chosen arbitrarily. In Unity this field is shared with the iOSApple’s mobile operating system. More info
See in Glossary
Player Settings for convenience.

Stripping Level

Most games don’t use all the functionality of the DLLs included by default. With this option, you can strip out unused parts to reduce the size of the output package (APK).

  • 2018–06–06 Page amended with limited editorial review

  • Updated features in 5.5

  • Sustained Performance Mode added in 2017.3

  • .NET 4.x runtime added in 2018.1

  • Android Multiple APK features added in 2018.2