What does the headless build option do?
Headless mode means the player is built without any reference to X11 and friends, meaning that you can run a headless player on a server that doesn't have X installed. In all other respects, behavior is identical to a normal player with -batchmode and -nographics.
Textures and sounds are still included in the build, and loaded in the player as normal - Unity doesn't know what you want to do with your player - just because you're not displaying a texture doesn't mean you don't want to do something with it.
Headless mode means the player is built without any reference to X11 and friends, meaning that you can run a headless player on a server that doesn't have X installed. In all other respects, behavior is identical to a normal player with -batchmode and -nographics.
Textures and sounds are still included in the build, and loaded in the player as normal - Unity doesn't know what you want to do with your player - just because you're not displaying a texture doesn't mean you don't want to do something with it.
How to remove unneeded references (texture, audio) when doing headless server builds?
You can add conditional compilation symbols in project settings which could be used to cause code to compile or not. e.g. define HEADLESS, then do something like...
Now, I don't know if PostProcessScene allows you to strip out assets, but if so then you could choose to strip them or not by using conditional compilation.
#if HEADLESS
// my code to do stuff when HEADLESS is defined
#endif
Another option would be to do something with assset bundles - just don't load certain bundles when in headless mode.
You can potentially do something in PostProcessBuild as well, but again, I don't know if you can cause assets to be stripped or not.
Hopefully that gives you enough info to do some more research.
Headless linux server problem:
Hey, I can start server in -batchmode and Putty console just hangs there.
But how can I start 3 instances of unity application?
Answer:
As normal user, cd to your game location and try this command to see if working:
$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:24' ./server_linux.x86 > ./server_linux.log &
To run multiple instances of Unity Editor:
And it's all ok.
Set current directory to /server_linux/sl
Found path: /server_linux/sl/server_linux.x86
Mono path[0] = '/server_linux/sl/server_linux_Data/Managed'
Mono path[1] = '/server_linux/sl/server_linux_Data/Mono'
Mono config path = '/server_linux/sl/server_linux_Data/Mono/etc'
But how can I start 3 instances of unity application?
Answer:
As normal user, cd to your game location and try this command to see if working:
$ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:24' ./server_linux.x86 > ./server_linux.log &
To run multiple instances of Unity Editor:
- open project once and set Edit -> Project Settings ->
Player -> Per-Platform Settings - Settings for PC, Mac & Linux
Standalone -> check
"Run In Background"
- close the project and copy it (full) in diferent locations
- for each location, create a .bat files like (change paths accordingly with Unity instalation and your folders):
- Execute each .bat file
Comments
Post a Comment