I made a build of my game, which is running just fine in the editor. But when I run the build, I get the splash screen, then a black screen. No graphics, no sound, no response to any input. (Hitting ALT-F4 works, though, and if I build it as a dev build I get the little "Development build" label in the corner.)
I attached Visual Studio's debugger to the build, and found that no symbols were loaded for my C# project. So I checked the Modules view and saw that none of the managed stuff is loaded. No Assembly-CSharp.dll, no UnityEngine.dll, nothing.
Checking the player log gives the following:
Mono path[0] = 'D:/Unity Projects/Demo Game/Build/Demo Game_Data/Managed'
Mono config path = 'D:/Unity Projects/Demo Game/Build/MonoBleedingEdge/etc'
PlayerConnection initialized from D:/Unity Projects/Demo Game/Build/Demo Game_Data (debug = 0)
PlayerConnection initialized network socket : 0.0.0.0 55270
Multi-casting "[IP] 192.168.1.110 [Port] 55270 [Flags] 3 [Guid] 952375020 [EditorId] 1385446543 [Version] 1048832 [Id] WindowsPlayer(DESKTOP-P8D0FND) [Debug] 1 [PackageName] WindowsPlayer [ProjectName] Demo Game" to [225.0.0.222:54997]...
Waiting for connection from host on [0.0.0.0:55270]...
Remaining time:8s
Remaining time:7s
Remaining time:6s
Remaining time:5s
Remaining time:4s
Remaining time:3s
Remaining time:2s
Remaining time:1s
Remaining time:0s
Timed out. Continuing without host connection.
Started listening to [0.0.0.0:55270]
Starting managed debugger on port 56020
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,server=y,suspend=n,address=0.0.0.0:56020
PlayerConnection already initialized - listening to [0.0.0.0:55270]
Initialize engine version: 2019.3.10f1 (5968d7f82152)
[Subsystems] Discovering subsystems at path D:/Unity Projects/Demo Game/Build/Demo Game_Data/UnitySubsystems
GfxDevice: creating device client; threaded=1
Direct3D:
Version: Direct3D 11.0 [level 11.1]
Renderer: NVIDIA GeForce RTX 2070 SUPER (ID=0x1e84)
Vendor:
VRAM: 8011 MB
Driver: 26.21.14.4120
Begin MonoManager ReloadAssembly
- Completed reload, in 0.993 seconds
D3D11 device created for Microsoft Media Foundation video decoding.
<RI> Initializing input.
<RI> Input initialized.
<RI> Initialized touch support.
WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - All passes removed
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
ERROR: Shader Hidden/Nature/Terrain/Utilities shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
UnloadTime: 0.531000 ms
Setting up 8 worker threads for Enlighten.
Thread -> id: 50a4 -> priority: 1
Thread -> id: 4c3c -> priority: 1
Thread -> id: 4e20 -> priority: 1
Thread -> id: 4e44 -> priority: 1
Thread -> id: 4930 -> priority: 1
Thread -> id: 5284 -> priority: 1
Thread -> id: 5394 -> priority: 1
Thread -> id: 3588 -> priority: 1
##utp:{"type":"MemoryLeaks","version":2,"phase":"Immediate","time":1596395470793,"processId":19060,"allocatedMemory":8043,"memoryLabels":[{"Permanent":40},{"NewDelete":432},{"Thread":72},{"Manager":2864},{"VertexData":480},{"GfxDevice":320},{"Physics":32},{"Serialization":40},{"String":259},{"DynamicArray":1792},{"PoolAlloc":56},{"GI":296},{"VR":2016},{"Subsystems":-656}]}
The only thing that looks even remotely relevant is the unsupported shader error, but a bit of googling leads me to suspect that that's a red herring. Hard to be sure though.
Searching for "Unity build black screen" turns up a bunch of the usual suggestions to make sure your graphics driver is up to date, (it is,) or various other versions of "the problem's with your hardware." But I'm able to build a different project off the same Unity version and run it with no problems. As near as I can tell, the problem is that no game content is actually loading, and for the life of me I can't see any reason as to why.
Has anyone seen this before, or have any idea how to make this work?