Difference between revisions of "Engine:Unity"
(budge -> budget) |
(hide game list like UE4 article as it overwhelms the page. Move general info to the top. Unfortunately rather outdated, more possibilities nowadays) |
||
Line 5: | Line 5: | ||
|first release=June 8, 2005 | |first release=June 8, 2005 | ||
|wikipedia=Unity (game engine) | |wikipedia=Unity (game engine) | ||
+ | |listgames=false | ||
}} | }} | ||
{{ii}}It is possible to manually port a Unity game to other supported operating systems, such as [[Mac OS]] or [[Linux]], see [[Engine:Unity/Porting]]. | {{ii}}It is possible to manually port a Unity game to other supported operating systems, such as [[Mac OS]] or [[Linux]], see [[Engine:Unity/Porting]]. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===General information=== | ===General information=== | ||
{{mm}} [http://docs.unity3d.com/Manual/ Unity Documentation] | {{mm}} [http://docs.unity3d.com/Manual/ Unity Documentation] | ||
Line 192: | Line 135: | ||
|| 4096 || 1024 || 256 || 64 || 16 || 4 | || 4096 || 1024 || 256 || 64 || 16 || 4 | ||
|} | |} | ||
+ | |||
+ | ==Issues unresolved== | ||
+ | ===Can't use x360ce or Durazno=== | ||
+ | {{ii}} [https://github.com/x360ce/x360ce x360ce] and [https://github.com/KrossX/Durazno Durazno] are incompatible due to the Unity input manager using Raw Input instead of XInput.<ref>[https://code.google.com/p/x360ce/issues/detail?id=481 Issue 481 - x360ce - Hooking does not work with Unity Engine - XBOX 360 Controller emulator - Google Project Hosting]</ref> See [[Controller]] for other alternatives. | ||
+ | ===Can't force anti-aliasing (NVIDIA users)=== | ||
+ | {{ii}} Unity games typically ignore forced anti-aliasing settings, resulting in poor image quality in games which could benefit from anti-aliasing. | ||
+ | {{Fixbox|description=Modify game's NVIDIA game profile|ref=<ref>{{Refurl|url=https://www.reddit.com/r/Battletechgame/comments/971m33/perfect_graphics_how_to_set_up_nvidia_sgssaa_in/|title=Reddit - Perfect graphics (How to set up Nvidia SGSSAA in BattleTech)|date=2018-12-16}}</ref><ref>{{Refcheck|user=Expack3|date=2018-12-16|comment=Tested on [[RimWorld]]}}</ref>|fix= | ||
+ | # Download and launch the [[Nvidia_Profile_Inspector|NVIDIA Profile Inspector]]. | ||
+ | # Using the dropdown list at the upper-left side of the window, select the name of the Unity game you wish to force anti-aliasing on. | ||
+ | # Under <code>Antialiasing Compatibility</code>, set the value to <code>0x004000C1</code> | ||
+ | # Under <code>Antialiasing - Mode</code>, set the value to <code>Override any application settings</code> | ||
+ | # Under <code>Antialiasing - Setting</code>, set the value to your desired anti-aliasing level. (Typical values include <code>2x</code>,<code>4x</code>, and <code>8xQ</code>.) | ||
+ | Notes: | ||
+ | {{ii}} Antialiasing cannot be forced for games using Direct 10 or newer. | ||
+ | {{ii}} Not all Unity games may be compatible with this fix. | ||
+ | }} | ||
+ | ===2D elements are vert- on non-standard aspect ratios=== | ||
+ | {{ii}} While Unity's 3D render is {{term|Hor+}} by default, 2D elements such as HUD graphics or 2D renders are {{term|Vert-}} by default, and may be cut-off on non-standard aspect ratios such as ultra-widescreen or multi-monitor setups. | ||
+ | |||
+ | ==Issues fixed== | ||
+ | ===Crash on launch for games based on some versions of Unity 2017 and 2018=== | ||
+ | {{ii}} Unity build 2017.3.0f3, among other versions, has a bug that causes games to crash immediately on startup if the '''Citrix Indirect Display Adapter''' device is installed in Device Manager of Windows. This virtual display adapter ships as part of Citrix Workspace (formerly Citrix Receiver) solution.<ref name="citrix1">{{Refurl|url=https://forum.unity.com/threads/problem-with-citrix-workspace.589342/|title=Citrix Forum - Problem with Citrix Workspace|date=2020-01-29}}</ref><ref name="citrix2">{{Refurl|url=https://forum.unity.com/threads/2017-3-crash-misdetected-ram-on-windows-standalone-win10-nvidia-2070-rtx.729530/#post-5419056|title=Unity Forum - 2017.3 crash, misdetected RAM on Windows standalone (Win10, Nvidia 2070 RTX)|date=2020-01-29}}</ref> | ||
+ | |||
+ | {{Fixbox|description=Uninstall Citrix Workspace.|ref=<ref name="citrix2"/>|fix=}} | ||
+ | |||
+ | ===Spinning camera, menus scrolling automatically=== | ||
+ | {{ii}} This is stock engine behaviour with controllers other than [[Controller:Xbox 360 Controller|Xbox 360 Controller]] and may require developer to fix it. See [[Glossary:Controller#Fast movement|Controller article]] for more details. | ||
+ | |||
+ | ===Low performance=== | ||
+ | {{ii}} Common issue especially with laptops, where engine uses integrated GPU instead of more powerful dedicated one. | ||
+ | |||
+ | {{Fixbox|description=Use dedicated GPU|ref={{cn|date=July 2016}}|fix= | ||
+ | '''On desktops:''' | ||
+ | * Make sure monitor is plugged into the dedicated GPU. | ||
+ | '''On laptops and other mobile devices:''' | ||
+ | * Force use of dedicated GPU through either Nvidia control panel or AMD Catalyst Control Center, either globally or game-specific profile. | ||
+ | }} | ||
+ | |||
+ | ===Multiple keystrokes with a simple key press when using GNOME desktop on Linux=== | ||
+ | {{Fixbox|description=Disable XModifier in launch options|ref=<ref>[https://www.gamingonlinux.com/articles/if-you-have-trouble-with-keyboard-input-in-some-unity-games-there-is-a-workaround.12411 If you have trouble with keyboard input in some Unity games, there is a workaround - GamingOnLinux]</ref>|fix= | ||
+ | Add the following command into Launch Options if you are on Steam: | ||
+ | <pre>XMODIFIERS='' %command%</pre> | ||
+ | For non-Steam games create/open .sh script file and add: | ||
+ | <pre> | ||
+ | #!/bin/bash (Not needed if the .sh script file already includes it) | ||
+ | |||
+ | XMODIFIERS='' ./game_executable | ||
+ | </pre> | ||
+ | }} | ||
+ | |||
+ | ===Graphical distortions appear on NVIDIA 415.22 driver (Linux)=== | ||
+ | {{ii}} Adding <code>-force-clamped</code> after one of these command lines will make the game sure to remember the specified renderer you have forced. | ||
+ | {{Fixbox|description=Launch the game with <code>-force-vulkan</code> OR <code>-force-glcore42</code>.|ref=<ref>[https://www.gamingonlinux.com/articles/theres-another-better-workaround-for-the-unity-graphical-glitches-with-nvidia-on-linux.13216 There's another (better) workaround for the Unity graphical glitches with NVIDIA on Linux - GamingOnLinux]</ref>|fix= | ||
+ | }} | ||
+ | |||
+ | ===Keyboard inputs multiple times with one key press (Linux)=== | ||
+ | {{Fixbox|description=Launch the game with <code>XMODIFIERS=''</code> (Include %command% if a game is on Steam) or replace the SDL2 library included with the game with the one from your system (In Steam's case run the client in Native mode)|ref=<ref>[https://www.gamingonlinux.com/articles/if-you-have-trouble-with-keyboard-input-in-some-unity-games-there-is-a-workaround.12411 If you have trouble with keyboard input in some Unity games, there is a workaround - GamingOnLinux] </ref>|fix= | ||
+ | }} | ||
{{References}} | {{References}} |
Revision as of 20:55, 12 October 2021
Developers | |
---|---|
Unity Technologies | |
Website | |
https://unity.com | |
First release date | |
June 8, 2005 | |
- It is possible to manually port a Unity game to other supported operating systems, such as Mac OS or Linux, see Engine:Unity/Porting.
General information
Unity Launcher/Configuration Tool
- The launcher/configuration tool allows easy customizing of graphics and input related settings of a Unity game.
- This tool is not available for all games.
Open the tool for a game |
---|
|
Manually port the game to other platform or architecture
It is entirely possible to port the game into other platform or architecture, even if it didn't receive the official release, for example to Linux. However, this is heavily dependant on the engine version it was made on as the support started from Unity 4 up to the recent and there may be some issues upon doing it. Engine:Unity/Porting will explain how to make your own unofficial port of the game.
Hardware statistics collection
- Games built with Unity automatically upload the player's hardware statistics when first run.
Borderless fullscreen windowed mode
- Most Unity games can be run in borderless fullscreen windowed mode by enabling regular windowed mode and using the
-popupwindow
command line argument. - Most games using Unity 5 run in the new default fullscreen mode. However its behaviour differs from earlier games' borderless mode and it's still possible to use launch parameter to use earlier borderless mode instead of new one.
Exclusive fullscreen mode
- Some Unity games will only run in borderless fullscreen windowed mode. To enable exclusive fullscreen mode use the
-window-mode exclusive
command line argument.
VR and stereoscopic modes
- Unity 5.1 onwards has native support for VR devices.[1] It's possible to force different VR modes, however results may vary if the game wasn't build for VR. To force VR mode, use
-vrmode DEVICETYPE
Command line argument and replace the DEVICETYPE with following:
Parameter | Description |
---|---|
None | No VR Device. |
Stereo | Stereo 3D via D3D11 or OpenGL. |
Split | Split screen stereo 3D (the left and right cameras are rendered side by side). |
Oculus | Oculus family of VR devices. |
PlayStationVR | Sony's PlayStation VR device for PlayStation 4 (formerly called Project Morpheus VR). |
Command line arguments
- See command line arguments on how to use the following options. Some common arguments are listed below.[2]
- Keep in mind that, depending on the engine version and operating system, some options might not be supported.
Parameter | Description |
---|---|
-show-screen-selector | Forces the screen selector dialog (aka the Unity Configuration Tool) to be shown. |
-batchmode | Run the game in “headless” mode. The game will not display anything or accept user input. This is mostly useful for running servers for networked games. |
-force-opengl (Windows only) | Make the game use the legacy OpenGL back-end for rendering, even if Direct3D is available. |
-force-glcore | Make the game use the new OpenGL back-end for rendering. With this argument, Unity will detect all the features the platform support to run with the best OpenGL version possible and all available OpenGL extensions |
-force-vulkan (Windows and Linux only) | Make the game use Vulkan for rendering, even if Direct3D or OpenGL is available. Introduced in 5.6 version of the engine. |
-force-d3d9 (Windows only) | Make the game use Direct3D 9 for rendering. As of Unity 2017.3 the D3D9 support has been removed.[3] |
-force-d3d9-ref (Windows only) | Make the game run using Direct3D’s “Reference” software renderer. The DirectX SDK has to be installed for this to work. This is mostly useful for building automated test suites, where you want to ensure rendering is exactly the same no matter what graphics card is being used. |
-force-d3d11 (Windows only) | Make the game use Direct3D 11 for rendering. |
-single-instance (Linux & Windows only) | Allow only one instance of the game to run at the time. If another instance is already running then launching it again with -single-instance will just focus the existing one. |
-nolog (Linux & Windows only) | Do not produce output log. Normally output_log.txt is written in the *_Data folder next to the game executable, where Debug.Log output is printed. |
-adapter N (Windows only) | Allows the game to run full-screen on another display. The N maps to a Direct3D display adaptor. In most cases there is a one-to-one relationship between adapters and video cards. On cards that support multi-head (they can drive multiple monitors from a single card) each “head” may be its own adapter. |
-popupwindow (Windows only) | The window will be created as a a pop-up window (without a frame). |
-screen-fullscreen | Override the default full-screen state. This must be 0 or 1. |
-screen-width (Linux & Windows only) | Overrides the default screen width. This must be an integer from a supported resolution. |
-screen-height (Linux & Windows only) | Overrides the default screen height. This must be an integer from a supported resolution. |
-screen-quality (Linux only) | Overrides the default screen quality. Example usage would be |
-nographics (Linux & Windows only) | When running in batch mode, do not initialize graphics device at all. This makes it possible to run your automated workflows on machines that don’t even have a GPU. |
-force-wayland (Linux only) | This command will force the engine to use Wayland display instead of XOrg (Which under Wayland session will use XWayland and cause some performance loss), you must run in a desktop environment which has Wayland session available to work. It is currently experimental |
Graphical presets
- By default, games using the Unity engine only come with a few graphics presets: Fastest, Fast, Simple, Good, Beautiful, and Fantastic. The developer can choose not to use them and use more fine-grained graphics options in-game.
- There isn't any way to change the predefined graphics presets.
- The Unity launcher is not navigable with a controller.
- The following table is a list of Unity's default presets (as of version 4.5.4):
Fantastic | Beautiful | Good | Simple | Fast | Fastest | |
---|---|---|---|---|---|---|
Rendering | ||||||
Pixel Light Count | 4 | 3 | 2 | 1 | 0 | 0 |
Texture Quality | Full Res | Full Res | Full Res | Full Res | Full Res | Half Res |
Anisotropic Filtering | Forced On | Forced On | Per Texture | Per Texture | Disabled | Disabled |
Antialiasing | 2X Multi Sampling | 2x Multi Sampling | Disabled | Disabled | Disabled | Disabled |
Soft Particles | On | On | Off | Off | Off | Off |
Shadows | ||||||
Shadows | Hard and Soft Shadows | Hard and Soft Shadows | Hard and Soft Shadows | Hard Shadows Only | Disable Shadows | Disable Shadows |
Shadow Resolution | High Resolution | High Resolution | Medium Resolution | Low Resolution | Low Resolution | Low Resolution |
Shadow Projection | Stable Fit | Stable Fit | Stable Fit | Stable Fit | Stable Fit | Stable Fit |
Shadow Cascades | Four Cascades | Two Cascades | Two Cascades | No Cascades | No Cascades | No Cascades |
Shadow Distance | 150 | 70 | 40 | 20 | 20 | 15 |
Other | ||||||
Blend Weights | 4 Bones | 4 Bones | 2 Bones | 2 Bones | 2 Bones | 1 Bone |
Vsync | Every VBlank | Every VBlank | Every VBlank | Don't Sync | Don't Sync | Don't Sync |
LOD Bias | 2 | 1.5 | 1 | 0.7 | 0.4 | 0.3 |
Particle Raycast Budget | 4096 | 1024 | 256 | 64 | 16 | 4 |
Issues unresolved
Can't use x360ce or Durazno
- x360ce and Durazno are incompatible due to the Unity input manager using Raw Input instead of XInput.[4] See Controller for other alternatives.
Can't force anti-aliasing (NVIDIA users)
- Unity games typically ignore forced anti-aliasing settings, resulting in poor image quality in games which could benefit from anti-aliasing.
Modify game's NVIDIA game profile[5][6] |
---|
Notes:
|
2D elements are vert- on non-standard aspect ratios
- While Unity's 3D render is Hor+ by default, 2D elements such as HUD graphics or 2D renders are Vert- by default, and may be cut-off on non-standard aspect ratios such as ultra-widescreen or multi-monitor setups.
Issues fixed
Crash on launch for games based on some versions of Unity 2017 and 2018
- Unity build 2017.3.0f3, among other versions, has a bug that causes games to crash immediately on startup if the Citrix Indirect Display Adapter device is installed in Device Manager of Windows. This virtual display adapter ships as part of Citrix Workspace (formerly Citrix Receiver) solution.[7][8]
Uninstall Citrix Workspace.[8] |
---|
- This is stock engine behaviour with controllers other than Xbox 360 Controller and may require developer to fix it. See Controller article for more details.
Low performance
- Common issue especially with laptops, where engine uses integrated GPU instead of more powerful dedicated one.
Use dedicated GPU[citation needed] |
---|
On desktops:
On laptops and other mobile devices:
|
Multiple keystrokes with a simple key press when using GNOME desktop on Linux
Disable XModifier in launch options[9] |
---|
Add the following command into Launch Options if you are on Steam: XMODIFIERS='' %command% For non-Steam games create/open .sh script file and add: #!/bin/bash (Not needed if the .sh script file already includes it) XMODIFIERS='' ./game_executable |
Graphical distortions appear on NVIDIA 415.22 driver (Linux)
- Adding
-force-clamped
after one of these command lines will make the game sure to remember the specified renderer you have forced.
Launch the game with -force-vulkan OR -force-glcore42 .[10]
|
---|
Keyboard inputs multiple times with one key press (Linux)
Launch the game with XMODIFIERS= (Include %command% if a game is on Steam) or replace the SDL2 library included with the game with the one from your system (In Steam's case run the client in Native mode)[11]
|
---|
References
- ↑ Unity - Manual: VR Overview - last accessed on March 30, 2016
- ↑ Unity - Manual: Command line arguments
- ↑ Deprecating DirectX 9 - Unity Blog - last accessed on 2019-05-03
- ↑ Issue 481 - x360ce - Hooking does not work with Unity Engine - XBOX 360 Controller emulator - Google Project Hosting
- ↑ Reddit - Perfect graphics (How to set up Nvidia SGSSAA in BattleTech) - last accessed on 2018-12-16
- ↑ Verified by User:Expack3 on 2018-12-16
- Tested on RimWorld
- ↑ Citrix Forum - Problem with Citrix Workspace - last accessed on 2020-01-29
- ↑ 8.0 8.1 Unity Forum - 2017.3 crash, misdetected RAM on Windows standalone (Win10, Nvidia 2070 RTX) - last accessed on 2020-01-29
- ↑ If you have trouble with keyboard input in some Unity games, there is a workaround - GamingOnLinux
- ↑ There's another (better) workaround for the Unity graphical glitches with NVIDIA on Linux - GamingOnLinux
- ↑ If you have trouble with keyboard input in some Unity games, there is a workaround - GamingOnLinux