This page details the Player Settings specific to Android. For a description of the general Player Settings, see documentation on PlayerSettings.
|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|
|Preserve framebuffer alpha||Enable Unity to render on top of native Android UI. The camera’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 Mode||This option can be used to render the scene 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 blit 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 Ratio|
|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 Textures in the same format as the Display Buffer.|
|Disable Depth and Stencil||Tick this checkbox to disable the depth and stencil buffers.|
|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.|
|Virtual Reality Splash Screen||Specify the texture that should be used for the Android splash screen on a Virtual Reality application.|
|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.
|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 Batching||Check this box to use Static batching on your build (enabled by default).|
|Dynamic Batching||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.|
|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
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.
|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.|
|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 Backend||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 IL2CPP 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.|
|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 networking (
|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).|
|Prebake Collision Meshes||Should collision data be added to meshes at build time?|
|Keep Loaded Shaders Alive||Check this box to prevent shaders from being unloaded.|
|Preload Shaders||Should shaders be loaded when the application starts up?|
|Preloaded Assets||An array of assets 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 profiler 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. Compression 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).|
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.
|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).|
|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 Keystore password or the Key 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.
|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.|
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 iOS Player Settings for convenience.
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
Did you find this page useful? Please give it a rating: