Hi there,
I was wondering about a few things. First of all, what is the difference between C/C++ plugins and scripting in C#? If I don’t like C/C++, does that give me any serious disadvantages concerning what I can do with Unity3D (concerning functionality of the game itself, not the IDE), or could one basically say that what can be done with C/C++ plugins can also be done with C#-scripts or C#-DLLs (or any other .NET language)?
When I understand it correctly from the documentation ( http://unity3d.com/Documentation/Manual/Plugins.html ) it’s more like the plugin functionality is for people who prefer C/C++ over C# (um… which is something beyond comprehension for my little Java/C#-infected mind ).
Second question is: as far as I understand it, the C#/.NET-support (maybe even JavaScript support) of Unity3D is based on Mono. Since Mono is somewhere in between .NET 1.1 and .NET 2.0, would that mean that some (or most) of the .NET 2.0 API is not available in Unity3D? Specifically, System.Net.Sockets.UDPClient would be important for me
Also, what about the new C# language features that came with .NET 2.0, like generics and the like (nullable primitive types are also quite nice)?
And: even if those may currently not be supported by Mono, would they be once Mono “gets there”, and would it be possible using the power of .NET 2.0 at least on windows machines until then (without making working with Unity3D on the Mac really complicated).
Hm… as I can see from http://www.go-mono.com/archive/1.2/ Mono 1.2 implements the greatest part of .NET 2.0, so maybe the question should rather be: does Unity 1.6.1 fully support Mono 1.2?
Still, looking at some of the “API-addons” that come with .NET 3.0, the question of “is it possible to have Windows.NET features in a Unity3D game” remains. And, if so, would there be a convenient way to still publish Mac OS versions (with a little less features, maybe) aside of Windows versions? I’ve had that extensively doing J2ME development for mobile phones (e.g. somes phones do support 3D, others don’t - in my case, I could then have one build with 3D, and another one without, done with pre-processing the sources).
Finally: will much of that change in Unity 2.0?
Oh, sorry, one more: somewhere in the documentation or forums I read that JavaScript is somewhat preferable over C#, and it seems like most examples are JavaScript based. Is there any specific reason for this, or is it just the way it currently is (I’m doing a lot of Web development using C# on the server and JavaScript clientside, and I must admit the word “JavaScript” does give me a little pain by its sound alone ).
Sorry for the many questions… it’s simply because I’m getting really enthusiastic about Unity3D
If there’s any documentation (or forum threads) that answers my questions, I’ll also be quite happy with links (I did research the forums and docs a little bit, but may certainly have missed some things)
Kind regards,
Jashan