Web-server configuration to correctly serve Unity webplayers

How do I configure a web-server to serve Unity content?

Most servers should require no configuration at all. Just upload the .unity3d file, and the accompanying html file, and you're finished.

Sometimes you'll get a server which is a bit particular about what kinds of files it serves up (looking at you, IIS!) so you need to explicitly add the unity webplayer mime type before it will even admit that your file exists to the outside world.

The MIME type for Unity webplayer content is:

application/vnd.unity

And the file extension for unity webplayer files is:

.unity3d

So, if you're editing htaccess files on your server, you need to add this:

AddType application/vnd.unity unity3d

And if you're configuring a server via some other means (eg, a control panel, or asking your sysadmin to do it) you just need to specify the mime type mentioned above.

Hmmm, unity 3D works for me on IIs7 out the box.

When i added this mime type to IIS7, it stopped serving previously working files!

Odd....

By default if you named your files unity3d files it works in IIS, however, if you are using the DressingRoom example that Unity provides for Asset Bundles, they renamed the asset bundles as .assetbundle and you will have to add the .assetbundle as application/vnd.unity in your mime types. It works if you run the file off your desktop, but once it goes through IIS it won’t work and the character never loads. Also, for Unity4 you have to comment out this line in order for it to load the characters:

character.GetComponent().updateWhenOffscreen = true;

Interestingly, if you don’t maximize the screen and have the editor window open, it works because it sees the character.

You could trick IIS and just rename .unity3d to .jpeg and it will serve up. Of course change the extension in your html file, too.