Standalone
Multi-display

Standalone Player Settings

This page details the Player Settings specific to standalone platforms (Mac OSX, Windows and Linux). A description of the general Player Settings can be found here.

Resolution And Presentation

Property: Function:
Resolution
Default is Full Screen Check this box to make the game start in fullscreen mode by default.
Default Is Native Resolution Check this box to make the game use the default resolution used on the target machine.
Default Screen Width Default width of the game screen in pixels.
Default Screen Height Default height of the game screen in pixels.
Run in background Check this box to make the game keep running (rather than pausing) if the app loses focus.
Standalone Player Options
Capture Single Screen Check this box to ensure standalone games in fullscreen mode do not darken the secondary monitor in multi-monitor setups. This is not supported on Mac OS X.
Display Resolution Dialog Choose whether the game should start with a dialog to let the user choose the screen resolution. The options are Disabled, Enabled and Hidden by Default (i.e. the option only appears if the alt key is held down at startup).
Use Player Log Check this box to write a log file with debugging information. If you plan to submit your application to the Mac App Store, leave this option un-ticked. Ticked is the default.
Resizable Window Check this box to allow the user to resize the standalone player window.
Mac App Store Validation Check this box to enable receipt validation for the Mac App Store.
Mac Fullscreen Mode Choose how fullscreen mode operate on MacOSX. The options are Capture Display (i.e. Unity takes over the whole display and the user cannot switch apps until fullscreen mode is exited), Fullscreen Window and Fullscreen Window with Menu Bar and Dock.
D3D9 FullScreen Mode Choose the fullscreen mode when using DirectX 9.
        Exclusive Mode Sets the Default Fullscreen mode to encompass the whole screen without a window surrounding it.
    Fullscreen Window Keeps the game in a window when in fullscreen. Better for allowing the game to run in the background.
        Exclusive Mode Sets the Default Fullscreen mode to encompass the whole screen without a window surrounding it.
    Fullscreen Window Keeps the game in a window when in fullscreen. Better for allowing the game to run in the background.
Visible in Background Check this box to show the application in the background if Fullscreen Windowed mode is used (in Windows).
Force Single Instance Check this box to restrict standalone players to a single concurrent running instance.
Supported Aspect Ratios Choose the aspect ratios that appear in the Resolution Dialog at startup (as long as they are supported by the user’s monitor).

Icon

Property: Function:
Override for Standalone Check this box to assign a custom icon to be used for your standalone game. Upload different sizes of the icon to fit each of the squares below the checkbox.

Splash Image

Property: Function:
Config Dialog Banner Add a custom splash image to be displayed in the Display Resolution Dialog.
Show Unity Splash Screen Shows the “Made with Unity” Splash Screen when the game is loading .

Other Settings

Property: Function:
Rendering
Color Space Choose which color space should be used for rendering. The options are Gamma and Linear. See the Unity Manual page on Linear Rendering for a guide to the difference between the two.
Auto Graphics API for Windows Check this box to use the best Graphics API on the Windows machine the game is running on. Uncheck it to add and remove supported Graphics APIs.
Auto Graphics API for Mac Check this box to use the best Graphics API on the Mac the game is running on. Uncheck it to add and remove supported Graphics APIs.
Auto Graphics API for Linux Check this box to use the best Graphics API on the Linux machine it runs on. Uncheck it to add and remove supported Graphics APIs.
Static Batching Check this box to use Static batching.
Dynamic Batching Check this box to use Dynamic Batching (activated by default).
GPU Skinning Check this box to enable DX11/ES3 GPU skinning.
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, which is often a bottleneck. Please note that this feature is experimental. it may not deliver a performance improvement for your project, and may introduce new crashes.
Virtual Reality Supported Check this box when building a Virtual Reality application. See VR Overview for more information.
Configuration
Scripting Backend Mono2x is the only scripting backend supported on Standalone platforms.
Disable HW Statistics Check this box to instruct the application not to send information about the hardware to Unity (See the Unity Hardware Statistics page for more details).
Scripting Define Symbols use this to set custom compilation flags (see the platform dependent compilation page for more details).
Optimization
API Compatibility Level There are two options for API compatibility level: .Net 2.0, or .Net 2.0 Subset.
        .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.
Prebake Collision Meshes Check this box to add collision data to meshes at build time.
Preload Shaders Check this box to load shaders when the player starts up.
Preloaded Assets Set an array of assets to be loaded when the player starts up.
Vertex Compression Vertex compression can be set per channel. You can, for instance, choose to have compression enabled for everything except positions and lightmap UVs. Whole mesh compression set per imported object will override the vertex compression on objects that have it set, while everything else will obey the vertex compression options/channels set here.
Optimize Mesh Data Check this box to remove any data from meshes that is not required by the material applied to them (e.g. tangents, normals, colors, UV).

API Compatibility Level

You can choose your mono API compatibility level for all targets. Sometimes a 3rd-party .net dll will use things that are outside of the .net compatibility level that you would like to use. In order to understand what is going on in such cases, and how to best fix it, install “Reflector” for Windows.

  1. Drag the .net assemblies for the API compatilibity level in question into Reflector. You can find these in Frameworks/Mono/lib/mono/YOURSUBSET/
  2. Drag in your 3rd-party assembly.
  3. Right-click your 3rd-party assembly and select “Analyze”.
  4. In the analysis report, inspect the “Depends on” section. Anything that the 3rd-party assembly depends on, but that is not available in the .net compatibility level of your choice, will be highlighted in red there.

Details

Customizing your Resolution Dialog

The Resolution Dialog, presented to end-users
The Resolution Dialog, presented to end-users

You have the option of adding a custom banner image to the Screen Resolution Dialog in the Standalone Player. The maximum image size is 432 x 163 pixels. The image does not scale up to fit the screen selector, it is automatically centered and cropped.

Publishing to the Mac App Store

The property Use Player Log enables writing a log file with debugging information. This is useful for investigating problems with your game. However you need to disable this when publishing games for Apple’s Mac App Store, as Apple may reject your submission if it is enabled. See the Unity Manual Log Files page for further information about log files.

The property Use Mac App Store Validation enables receipt validation for the Mac App Store. If this is enabled, your game will only run when it contains a valid receipt from the Mac App Store. Use this when submitting games to Apple for publishing on the App Store. This prevents people from running the game on a different computer to the one it was purchased on. Note that this feature does not implement any strong copy protection. In particular, any potential crack against one Unity game would work against any other Unity content. For this reason, it is recommended that you implement your own receipt validation code on top of this, using Unity’s plugin feature. However, since Apple requires plugin validation to initially happen before showing the screen setup dialog, you should still enable this check, or Apple might reject your submission.

Windows Store Apps

Player Settings
Player Settings

Most of these settings are transferred to Package.appxmanifest when creating Visual Studio solution for the first time.

Note: If you build your project on top of the existing one, Unity won’t overwrite Package.appxmanifest file if it’s already present, so check for this if you change something in Player Settings. If you want Package.appxmanifest to be regenerated, simply delete it and rebuild your project from Unity.

To read more about App package manifest, see the Windows Dev Center App package manifest page.

Any settings you choose in Packaging, Application UI, Tile, Splash Screen and Capabilities directly transfer to settings in the Package.appxmanifest file.

Certificate

Every Windows Store App needs a certificate which identifies a developer. Unity creates a default certificate if you don’t provide your own.

Compilation

Unity uses Mono when compiling script files, and you can use the API located in .NET 3.5. Compilation Overrides allows you to use .NET for Windows Store Apps (also known as .NET Core) in your C# files. The API is available from the Windows Dev Center.

There are three options to choose from in Compiler Overrides:

Property: Function:
None C# files are compiled using Mono compiler.
Use .Net Core C# files are compiled using Microsoft compiler and .NET Core. You can use Windows Runtime API, but classes implemented in C# files aren’t accessible from JS.
Use .Net Core Partially C# files not located in Plugins, Standard Assets or Pro Standard Assets folders are compiled using Microsoft compiler and .NET Core. All other C# files are compiled using Mono compiler. The advantage here is that classes implemented in C# are accessible from JS.

Note: You won’t be able to test .NET Core API in Unity Editor, because it doesn’t have access to .NET Core. You’ll only be able to test the API when running the Windows Store App.

Note: You cannot use .NET Core API in JS.

Here’s a simple example of how to use .NET Core API in scripts.

    string GetTemporaryFolder()
    {
    #if NETFX_CORE
        return Windows.Storage.ApplicationData.Current.TemporaryFolder.Path;
    #else
        return "LocalFolder";
    #endif
    }

Plugins

The property Unprocessed Plugins contains a list of plugins which are ignored by Unity’s preprocessing tools (like SerializationWeaver and AssemblyPreprocessor). Usually you don’t need to modify this list, unless you’re getting an error that Unity has failed to preprocess your plugin.

What happens if you add a plugin to this list?

Unity won’t inject additional IL code into your assembly used for serialization purposes. If your plugin isn’t referencing UnityEngine.dll, that’s fine, because Unity won’t serialize any data from your plugin.

Independent Input Source

The property Independent Input Source essentially gives you the ability to make your input more responsive. Learn more on the Windows Dev Center SwapChainPanel.CreateCoreIndependentInputSource class page.

Low Latency Presentation API

The property Low Latency Presentation API essentially creates a D3D11 swapchain with a DXGI\_SWAP\_CHAIN\_FLAG\_FRAME\_LATENCY\_WAITABLE_OBJECT flag, and can increase input responsiveness. Learn more on the Windows Dev Center DXGI_SWAP_CHAIN_FLAG enumeration page. This option is disabled by default because on hardware with older GPU drivers, this option makes game laggy, if you enable this option - be sure to profile your game if the performance is still acceptable.

Capabilities

These options are directly copied to Package.appxmanifest.

Note: If you’re building your game on top of a previous package, Package.appxmanifest won’t be overwritten, so check for this if you change something in Player Settings.

Standalone
Multi-display