I’ve been attempting to learn Unity for over a year now, and every attempt ends in failure. It seems like the learning curve is just too high for me to climb over. It’s not like I don’t understand how to create games… I’ve worked on successful games in the past. I learned to code in a sort of pseudo javascript. I know some basic C++ and I have the “jist” of programming in general. I’ve also had several years experience with 3D and various modeling/rigging/animating applications.
With all that said… I just don’t get Unity.
The tutorials and references just are not helpful to me. I don’t want to look at some 500 line long example. I want to know what things do and why they do it. Dissecting examples has not worked at all for me. I just can’t grasp this whole component based thing… and I really don’t understand the built in variables for Unity and all of that… It took me 3 hours to lock the character’s direction to not look up/down in the 2d Platformer tutorial. 3 hours. That’s just not acceptable… I’ll never finish the games I have planned at that rate. It’s just not coming easy to me and I partly blame myself but I mostly blame the tutorials. There’s just not enough explanation of how things work. I feel like I’m missing some documentation that is explaining everything clearly and everyone else seems to have found it.
But it’s not just scripting… it’s importing 3d models as well. This has been nothing but a nightmare for me. I use Lightwave for basically all of my modeling and animating, and it’s just not playing very nicely with Unity. I’ve had to make posts here in the past with my importing troubles already, and it seems like every new mesh I try to import just finds a new way to break.
First it was Lightwave not exporting the bones properly, so I had to find a work around for that… But now even when I export in a character and the bones are in the right place… the weightmaps don’t work! I just don’t get it. I can’t find a single successful solution to exporting an FBX from lightwave that will work with Unity, and the tutorial on the site does not help me at all, as it’s severely outdated and I don’t use that old version of Lightwave, nor would it be beneficial for me to use outdated software.
The process of getting into Unity is just not a simple one for me. It’s been nothing but a complicated mess and I’d really just love to understand it but I can’t. This isn’t a rant of me giving up or anything… in fact, it’s the opposite. I’m desperately wanting to learn Unity but every time I try I just run into a brick wall. I post this in the hopes that someone out there can either guide me to some better tutorials or like… some sort of overall reference that actually explains what scripts or operations or classes or whatever do… I’ve looked at the Unity Script Reference and it’s nice and all, but it breaks things down so far that it’s all just disconnected to me. I can’t piece anything back together to actually make a script work. Here’s a simple example that just makes my head spin around:
transform.Translate(0, 1, 0);
// is equivalent to
GetComponent(Transform).Translate(0, 1, 0);
Note the case difference between transform and Transform. The former is a variable (lower case), the latter
is a class or script name (upper case). This case difference lets you to differentiate variables from
class&script names.
So which do I use? They are both the same? I don’t get it. Why call the function “GetComponent” when it’s getting a “script”? Shouldn’t it be called GetScript? It’s this sort of naming convention that just confuses me even further. Is a script a component? Does a component contain scripts? Is “Transform” a class? A script? A component? All of the above? Where is a list of all the classes built in to Unity? These sort of questions leave me spinning around in circles and I end up nowhere.
If I can’t even learn the basics of scripting and can’t even get a single mesh imported without it being broken or deformed, how can I ever expect to use Unity to build games?