Firstly, I'm not a lawyer, and this is not legal advice.
Secondly, why is this question asked?
Answer: Because Unity is a commercial product, it is incompatible with Open Source licenses.
Can you choose GNU GPL (but also AGPL or LGPL)? So:
What happens if you choose the GNU GPL? So... nothing for you unless you accept changes from other people. Simply put, the code will be under the GNU GPL, the binaries will have to be under the freeware/shareware EULA or whatever, and users of the code will have to compile the source code themselves and use it privately without publishing binaries.
You can add an exception, e.g.:
"As a special exception, you may link this source code to the Unity libraries provided at (URL to Unity site) and share the binary code under the license described below"
Then you license the freeware, which you can either write yourself or modify an existing one, and that's it. Only if someone removes the exception from his fork, you will not be able to use his modifications.
I then recommend the GNU GPL v3 because it describes the realm of exceptions.
There is still the issue of "system libraries" in the GNU GPL, but Unity probably doesn't fit into that.[1]
For AGPL, it is similar to GPL.
Weak copyleft licenses:
LGPL
If you would like the game modifications to keep the open source code, LGPL is good, but difficult to evaluate in the case of Unity. Let me know if you specifically need this license, and I will try to read about it.
MPL v2.
This is file-level protection, so you can definitely take advantage of it.
Modifications, i.e., changes to the code or new files that contain parts of other files covered by the MPL, must be provided, but Unity libraries do not.
But on the other hand, someone who modifies your code by adding new files can only share your files if done skillfully.
Permissive licenses
Apache, MIT, BSD, ISC and other permissive licenses should work well with Unity. Please ensure that the license for the binaries is different from these licenses.
So if you want to share a project under a FOSS license and not care about forks, use a permissive license.
If you want to keep the Unity project open source, you have these options:
Firstly:
Let's skip LGPL; it would be good, but you need to spend time analyzing to what extent you can do something.
They stay:
GNU GPL+Exception
MPLv2
MPL v2 is good, but remember that any extensions to the project that use the API rather than the code itself do not have to be open source.
GNU GPL + Exception
Good choice. The problem is that if you want to accept changes from others, you have to make sure they haven't removed the extension.
And you have to write an extension.
Note that you need to write a license for the binary code anyway.
Whichever route you choose, feel free to ask. For the GNU GPL, I can help with creating the exception and also help with licensing the binary code (although I'm not a lawyer).
THIS IS NOT LEGAL ADVICE