Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

Priority/Sequence of learning: Unity, Python, Blender? What do you recommend?

Discussion in 'General Discussion' started by vrpjreigna, May 3, 2022.

  1. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    Hello. Benefit of getting old: I finally have time and a tiny bit of funds to leap into the VR I've wanted to explore for so long. I've previously done graphic design (but not illustration) and various coding (not 'real programming' like C, but SQL and various web/middleware etc.). Looking at the software used for VR dev, I've decided I'd like to start with Unity, Python and Blender.

    I want to learn these things well enough to be able to find at least low-level work in the field, so the majority of my waking life can be spent on the topic of my interest and helping improve my skills. (I do have a few decades of business experience in every other area, including regular and digital project management, customer service/admin/accounting/etc., a little web QA, and so on, so perhaps that will help.)

    I want to maximize my speed and ease of learning. I believe in the resource of other people's experience!

    So I'd like to ask more experienced people:

    1/ Of these three programs, is there a sequence that you would suggest they be studied in? Or better to learn them simultaneously?
    2/ Do you feel the tutorials offered from the manufacturers' websites are sufficient for developing real competence, or are there other sources/locations with better or needed materials?
    3/ Are Unity and Blender overlapping in some way that should make me choose just one for my initial focus?

    Also:
    4/ I'm spending just over a grand on VR-related hardware, and don't have what I'd need to improve my PC (and holy crap, graphics cards...!!). My current system specs:
    ASUS i7-8750H/16GB.RAM/NVIDIA.GFORCE.GTX.1060/512GB.SSD+1TB.SSD
    which seems like, from my reading, it is 'minimum' but workable. Do you think this will be a problem for developing with Unity or Blender?
    5/ Is there a sequence of focus/type of project (for self-learning) you would suggest pursuing that would be best for gradual skill development?
    6/ If you knew then what you know now (...) about learning VR development, what would you do differently? What advice would you give someone who has a decent background in IT, and is extremely self-motivated, but has to do this around a sadly-unrelated day job?

    7/ Is there anything else you'd be kind enough to share that you think is useful in my situation?

    Many kind thanks to anybody willing to share.
     
  2. spiney199

    spiney199

    Joined:
    Feb 11, 2021
    Posts:
    6,015
    If you're wanting to learn Unity, specifically coding for it, then you probably should be learning C# as that's the language used in it's scripting API. You can do scripting with Python in Blender but that's definitely not required.

    In any case Blender and Unity are two very different programs more or less completely separate from one another. Unity is a game engine (first and foremost), and Blender is a 3d modelling animation and software suite. They serve two very different purposes, where the latter is most commonly used to make art assets for the former.

    Python (and C#, et all) are programming languages, not programs themselves. You code in those languages with programs such as Visual Studio, which, honestly, amount to very, very elaborate text editors.

    To that end you probably should learn them together, but you could do so separately. At least getting an understanding of the basics of 3d modelling and animation will get you a long way and help you when it comes to fiddling around in Unity.

    So to answer your questions:
    1: Learn C#, Blender and Unity together
    2: I haven't looked at Blender's website for tutorials in over 10 years but I believe these days it's good. I'd look at the Unity Learn website for Unity tutorials, of which their Junior programming course will teach you C#
    3: See early comments
    4: You should be okay with that hardware, it's nothing amazing but you shouldn't be spending big when just starting
    5: Start with the absolute basics of Unity, Blender and C#. You will need all of those to even get anywhere.

    and 6... I haven't actually done any VR development. I could be wrong but there's a small mountain of foundational knowledge you will need to learn first. Most likely the first few applications you make in Unity won't be VR at all.

    And 7.... what you don't know now you will know later. Don't get frustrated if you can't work out something or don't understand it, because you will understand it given enough time.

    There are a few people here who are big VR developers so hopefully they chime in with some good morsels of knowledge.
     
    Last edited: May 3, 2022
  3. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,886
    Walk before you run. Start with either:

    Blender, on its own. There is a ton to learn in 3D modelling, texturing, UV mapping etc and that will take a long time.


    OR

    Unity with C#. Again, a ton to learn about the engine, the language etc. Use models from the asset store or online if you take this route.

    It can take years, even decades to master any one of these.

    Python is not needed nor that useful, unless you are intending to do data science which is nothing to do with blender or unity.
     
    Last edited: May 3, 2022
  4. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,185
    Minimum requirements are made for applications and games that have been optimized for release. While they are in development those same applications and games will have higher requirements. It won't be to an insane degree but it will be noticeable. Typically it's just a lower frame rate until you've fully optimized the game.
     
    Last edited: May 3, 2022
    AcidArrow likes this.
  5. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    Enough to dip your toes in, but not enough to truely enjoy what VR offers imho. I've gone from a gtx1060 on which I finished Half-Life Alyx (with poor framerates at times) and upgraded to a rtx 3060 but it's still far from the killer rig that you could throw any VR application at without thinking about performance. And like Ryiah said, during development you might want a little more horsepower to be able to experience the unoptimized version like it's supposed to work later.
    Word of warning: if you're interested in other VR games, play those first in order from worst to best, otherwise they'll feel disappointing compared to half-life alyx.

    I recommend giving Blender a longer stretch of time to focus on and drill things down into (muscle) memory, or else you'll forget everything again if you take a break.

    And if you plan to spend a lot of time in VR I recommend reading up a little on potential health issues that can cause. I was starting to feel some eye issue with focusing on text outside of VR. I think this might be mitigated by aligning VR content that you look at closely with the focus depth of the optics of your headset so that vergence and focus of your eyes are like they would be if looking at a real object at the same distance. If you research that online you won't find much (but some anecdotal repords). I really wouldn't just rely on some people saying "I've used VR for hours a day and I'm fine" since you'll find the same for every other demonstrably harmful activity, and likely a lot for VR too.


    Why python? Unity uses C# I think, and I see little reason to be writing custom python scripts for Blender if you just create some assets for games with it.
     
  6. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,204
    I do write a bunch of python scripts for Blender to help out our animator, and BY GOD do not start out learning Python by using it to write Blender scripts.

    The Blender API is confusing and strange, things have insane side-effects, and you always have two different ways of doing things that behave slightly differently. Working on scripts is a drag - you either have to write things inside a pretty bad editor inside of Blender, or press a button every time you have updated an external script.

    The API and documentation has had large improvements over the last years, but it's still not that great, and when you google stuff you usually find outdated answers on dead forums that doesn't work anymore.

    Oh, and also Blender has a tendency to crash during testing of new scripts, for no reason I can tell. Once the script is done it's stable, but running a slightly different version of the same script as before can just freeze stuff.


    If I had started learning to program by writing scripts for Blender, I'd just have given up, probably. Python is, well, not a very good programming language, but it is a great language for learning to program, as there's little syntax that's mandatory to get going. It's also great for scripting small things. So it's a good starting point. Just learn it by making something simple with pygame or so other simple drawing library, not by doing battle with the insanity that is Blender plugins.
     
    DanMeyer009 and Martin_H like this.
  7. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    I learned what little python I know when I programmed a crude game prototype in blender over a decade ago. I already had learned programming basics in delphi and I kind of hated python ever since using it in blender. Interesting to hear how bad your experience was, so maybe there is still hope if I need to wrestle with a pythonesque language again in the future.
     
  8. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    To get work I think you'd need to specialize in one area. Probably most places aren't hiring a person to write gameplay logic and also create art assets in blender. To get good enough at either to be hirable by legit places you probably need at least a year of full-time practice plus time to make a portfolio. But it seems more like 3-5 years based on people i know/have read about.

    If your goal was to make games on your own, I don't think it matters what order you do. You can learn to write the game scripts and use placeholder art in meantime until you learn to make art on your own.

    Comparing the creation of art content to writing code, art has more linear workflow most of the time. But when you look at whole pipeline it can get pretty complicated too. Many different programs involved and many caveats you have to learn about.

    If you do every single tutorial that exist out there, you will be about 2% of the way I think.
     
  9. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    In terms of priority, it really depends on what your end goal is. Do you have a VR game in mind already? Are you wanting to focus on unique game mechanics of some kind? Or, is the main goal to be employable?

    There are many 3D artists and that path can take some time to be competitive and learn all that you need for preparing 3D models for use in games. It's much simpler doing 3D for motion graphics or rendered animation where there is greater leeway for poor modeling or UV mapping. So, that might be a harder path to be employable, but if you have a type of world in mind where models don't exist, learn 3D.

    Getting something to 'just work' in VR is I think the most valuable skill in terms of landing a job. Use or buy existing 3D models and focus on learning how to optimize and get a VR game up and running, including UI, render quality and coding for interactivity. That would be mainly focusing on learning Unity and C#.

    And I would agree to think about your health. I developed a VR experience during a residency for a month. I ended up not feeling so great, it kind of messes with your balance being in a headset so much and I haven't really wanted to develop VR since then.
     
  10. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    Python is not used in unity. It is used in blender, but only for writing plugins, and that is very advanced topic.

    Python IS useful as a general-purpose duct tape language for minor automation, but if your goal is VR development, I'm not seeing much point.

    In general, if you want to program, you should probably start with Unity and pick enough C# as you go.
    If you want to model and animate, then you should focus on Blender. You need to know a bit of both, though.

    That's the rough idea of it.

    It might be a good idea to pick programming basics in C#, but basically by the time they start talking about Immutability and Dependency Inversion, you can stop.

    ---------

    Also this is something that caught my attention.
    VR, at the moment, requires developing "VR legs", or what I call a "VR Adaptation", so moving in a headset won't cause VR sickness. People adapt at different rates, and at the moment some of them do not adapt at all.

    For me, adaptation took a month. That's quite a lot of time. Basically, I was playing daily for up to two hours or till I was ready to puke my guts out (whichever happened first). At some time I was starting to think "and you paid how much for a device that makes you sick?". Thankfully it passed.

    Some things to keep in mind:
    1. Games with teleport movement are less likely to make you sick.
    2. Games with comfort vignette are less likely to make you sick.
    3. You can play seated most titles. If you're in a chair, you can't fall even if you lose balance. Actually I consider standing play and room scale as nearly a gimmick at this point, although it has use for "fitness games".
    4. Having a virtual helmet helps.
    5. Smooth movement is likely to make you sick. The faster the movement, the stronger the effect.
    6. If a game takes control over the camera and starts it moving while not responding to your head movement, that's the worst thing it can do, as it is incredibly disorienting, and can make you puke in minutes even AFTER the adaptation.
    7. Third person chase cam following a racing car, is probably the most nausea inducing experience there is, and if you do not feel bad after that, you can probably play anything.

    In your case, @Voronoi, it is possible that you'[re more prone to VR sickness, and adapt slower or do not adapt at all.
     
    MadeFromPolygons likes this.
  11. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    TBH, I think I just don't enjoy the completely 'cut-off' feeling of being in a VR headset. I love how smooth and accurate the headsets are in responding to your movement, it's pretty amazing how accurate they have become.

    I think my ideal VR-like experience would be a really accurate AR experience using a lighter headset or glasses. In other words I like AR on a phone. But, current mobile AR the virtual objects never track perfectly as you move around. The twitchiness of AR takes me out of a potentially immersive experience. VR has the tracking down, and you feel totally immersed, but I think the nausea and claustrobphobic feeling of being all alone in a headset is it's shortcoming.

    Even if you're in a room full of people, as soon as you put on the helmet they are all gone – it's just you. To me that feels very weird. It would be way more fun if those people are still there, as in AR, but maybe with perfect virtual costumes and a perfectly tracked virtual environment. Sort of a blend of AR/VR.
     
  12. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,382
    If that's your goal, have you looked for job offerings to see what skills they are asking for? Of course, things could always change in a few years but it might give you some ideas.
     
  13. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    You guys, please keep talking if you're willing, I am learning so much from this thread on several topics, and from your talk with each other on it as well. I'm sure other readers and those of the future will benefit from it also.

    It does sound like Unity+C# is the place to begin, and sometime later do what I can to pick up some Blender.

    I'm guessing my sql/cfml/php/etc. experience is see-jane-run next to C#, and my photoshop/illustrator experience the same compared to Blender. I do at least understand most basic concepts in that world though, so I don't need to learn to understand IFs and loops and arrays for example -- just the specific way to code them in that language.

    I am more a jack of all trades sort, which means not a major techie and not an illustrator either (project, program, and regular management have been my primary career 'officially' but for smaller firms where you wear 1000 hats and it's growing fast, so a crazy workload) but with the web, I could do both because you know... it isn't rocket science. Mostly between biz & personal projects, I've needed to do useful stuff and couldn't pay someone so had to figure it out.

    Getting to 'employable in VR industry' is a big priority. If I'm spending most my waking hours doing unrelated stuff, I'm not focusing on what I want most, plus then it means it'll take me vastly longer to develop skills, as my time will be so limited. I've lots of skills in nearly every business area, including a little QA and plenty of case or project management, customer service and so on, in case any VR company was willing to overlook the no-degree thing and find a place for someone extremely flexible/ versatile and capital-R responsible. I'm an optimist, obviously. :) My goal is to be employable in the industry, and yes ideally in a way that serves my hands-on skills, but failing that, just "in the industry" would be good, since it's still a learning nexus with the focus I want.

    So while "skill development" across the board is my larger goal, a sooner goal is whatever might allow me to work at any level (that feeds me, even barely) in the industry. It's been my experience that when you fully focus on something, opportunities and information, people and events you could never have predicted tend to fall into your life, so I want to make this my focus to the greatest degree possible. Any words to the wise on that would be appreciated as well.

    Kind regards,
    PJ
     
  14. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    Good point. I did join a boatload of groups on these topics, a couple of which do have that and I spent awhile scrolling far back in time to get an idea. They were all looking for full developers or contractors, including the ones that probably were hoping people would work free. :) (Reminds me of my dad, a musician all his life, who once joked if he got any more 'exposure' he'd die of pneumonia.) I don't have known locations where job boards specific to this industry might be. (Aside from say, Monster.) Would greatly appreciate a headsup on those.

    I'd like to find some place that companies might post not just higher-end programmer and designer gigs -- it'll be years before I'm at the low-side of that, it sounds like from this thread -- but maybe also closer to IT-entry level, or business-related jobs. Customer service, QA, light or provides-some-training tech support, project management, customer account management, whatever. Even the few companies I know the names of that are said to be pursuing VR, they're big corps, which means a/ I might not know a job was specific to VR if posted, and b/ they likely have an HR filter of a degree I don't have. Smaller corps more interested in competence than paper will often take experience, especially a lot of it, in trade, but bigger corps have so many applicants, HR would lose their minds if they couldn't just clear out 95% of the submissions with that up front. Is there some industry-central area where jobs tend to be posted?

    Thanks again for any advice. I hugely appreciate that it takes time to help someone you don't know. I've done a lot of that from the other side, in other fields and topics, so it's lovely that others are so helpful in this new-to-me area.

    Edited later to add: kinda got only slightly off topic with the employment focus. That is not really why I posted here. But I appreciate people responding to that aspect also.
     
    Last edited: May 3, 2022
  15. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,382
    One thing to be aware of with Blender (same with Maya or 3D Studio) is that it has a lot of features that are geared-toward rendering high def, realistic videos and images using non-realtime techniques. So Blender will have tons of different things you can learn that are useless for VR, and just won't even import in to game engines like Unity or Unreal. Even something as simple as Material propertied are not compatible with Unity. It's good to have a general idea of how game engines work so that you know what areas of Blender to focus on and which you can just ignore.
     
  16. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,886
    Um...what? This just isnt true, blender is used in a variety of games, ranging from stylized 3d to realistic 3d to 2D styles. It absolutely is not geared towards high def realistic videos etc. This is not true in modern blender at all, it might have been years and years ago but certainly not now at all.

    It is used in realtime all over the place.
     
  17. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    9,997
    Python can be used in Unity. For this very purpose: automation in editor.

    https://docs.unity3d.com/Packages/com.unity.scripting.python@2.0/manual/index.html
     
  18. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    I think what @kdgalla might be referring to is my experience when hiring a 3D artist to make game assets. A 3D generalist will provide a model they created that is totally inappropriate for a game. Like a 30,000 polygon rock with 4 4K textures, that could have been a 20 polygon blob and a 128K tiled normal map combined with a procedural shader.

    It's not really Blender, it's just that most 3D programs don't care about efficiency like games do.
     
    kdgalla likes this.
  19. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,382
    What I said was "it has features", I wasn't trying to characterize all of Blender itself. Just to clarify I mean that Blender does have everything you need to create VR graphics and game graphics. In addition, it has other features that are geared toward non-realtime rendering (or maybe I should simply characterize them as non-Unity). I am only pointing this out because I think Blender has an overwhelming feature set that covers many domains, and I don't think it would necessarily be helpful for the OP to go through it all.
     
    Last edited: May 3, 2022
    spiney199 likes this.
  20. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    You can browse Art Station for positions in the gaming industry. Another really good place to look for VR work is in the medical and training industries. Universities are dying for people that can 'make something work' in VR, as are places looking to automate training. Not the most exciting or high paying work, but a tremendous need.
     
    Martin_H likes this.
  21. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    I'd expect everthing else paying more than games. Is that not the case with VR dev jobs?
     
  22. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    That's kinda the point. To be where you're not actually present, and not augment the place around you.

    The headsets are moving in direction of supporting "helmet AR" though. At least some offer passthrough.
    Quest 1 has passthrough even, although it is black and white and fairly low resolution.
     
    Voronoi likes this.
  23. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,064
    I'd suggest cooking. It's going to be a much more useful and meaningful skill than developing skills in any of those proposed software / languages.
     
  24. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    Ha. Less interesting to me and will not make me a (decent) living (sitting down) alas. Are there different software/language recommendations for VR/XR that you would make?
     
  25. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,064
    There are many, successful even, cooking related VR games. Just saying.

    Python is probably not very useful.

    Do you learn by doing? Or are you more theoretical?

    If it's by doing, then... do. Start with Unity, try to do the simplest thing (follow a tutorial even). If you need a mesh that isn't a basic cube, try opening blender and making something that isn't a cube.

    Sidenote: Unreal also exists.
     
  26. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    If the idea is to learn money, I'd suggest carpentry, plumbing, car mechanics or electricians work. Almost anyone can learn to cook.

    However, C#/Blender skills can also bring money.
    -------
    Unity/C# is likely the best possible start for messing with VR.

    Alternatives exist, but they're generally worse than unity or require more programming skills.
    Unreal is much more limited for VR, and atrociously awful for AR.
     
  27. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    It is a worse choice for VR than unity.

    Unreal shines when someone is trying to make a cinematographic stuff like Quantum Dream's interactive movies. And it looks like more VR games are made in unity than in unreal.

    From my steam library of vr games:
    Unity:
    Anyland, Blade and Sorcery, Gun Club VR, Nature Treks VR, Pistol Whip, Rec Room, Scanner Sombre, Simple Planes VR, Spice and Wolf VR, Thrill of the Fight, Vermillion, Gravity Sketch, Open Brush.

    Unreal:
    ARK-ADE(?), Raw Data, Cyube (well, I no longer have this one), Moss(?).

    Creation Engine:
    Skyrim VR, Fallout 4 VR.

    Custom engine:
    No Man's Sky, Elite Dangerous.
    -------
    Basically, the general trend is that if it is mechanically complex, allows you to do advanced stuff like modeling or create anything, then it is going to be Unity.

    If it looks pretty but have awkward controls and poor configuration, or uses unmodified stock teleport widget with no ability to have any height adjustment, then it is going to be unreal.
     
  28. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    I'm sure there are high paying VR jobs in the medical industry, but the projects I've been approached about are in higher education. There are many use cases for training applications in VR, but the people who need them do not realize the complexity involved in making what they want, and so the budgets are never there.

    However, someone like the OP might be a good fit. Smallish budget, but a portfolio piece to show that they can make something.
     
    Martin_H likes this.
  29. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    I appreciate all the great responses on this thread. I think this will be a great archive thread for many people into the future, as well. Surely this is a question many people have, how to begin, and even more will have as things develop.

    So based on the discussion here, I have some more specific questions, if any of y'all are kind enough to continue:

    1. I'll learn C#. With this code, would it be helpful to do small projects that are *not* 3D to learn? I'm sure I can come up with useful hobby things on my computer. This leads to the next question:

    2. I think, since I am so new to this, that my brain doesn't really grok how C# relates to 3D in practice. I can imagine scripted instructions, but 'how' that code connects to {graphic models?} things, let alone the context detail of everything, is... not clear to me at all. Is this where Unity comes in? How does Unity connect to C#?

    3. Do you have any suggestions for existing mini/small-projects one can replicate/modify as self-training, that combine C# with Unity, if that is how it works?
     
  30. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,337
    An object you see is a thing in 3d space. It has position, rotation and other properties. C# script can tell it where it should be, or where it should move, which animation it should play and so on. That's how.

    Any old-school arcade game is an easy enough training project. Space Invaders, Frogger, Snake, Pong, Breakout, Asteroids, etc.
     
  31. vrpjreigna

    vrpjreigna

    Joined:
    May 2, 2022
    Posts:
    6
    Thanks. After my first Unity tutorial last night, the use of C# became obvious; the script becomes a set of properties or instructions you attach to the object. Makes sense. It of course requires that a ton of pre-existing things be already defined for the codebase to utilize (e.g. to even know what motion IS) but apparently that's where Unity comes in. Seems pretty straightforward, there's just a bazillion options, details, settings, and probably more subtle elements of choice or combination of approach etc.

    Is there a reference library for all the 'things' which might already exist in Unity that can be called as things, functions, actions, etc.?
     
    Martin_H likes this.
  32. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,382
    Yes. Unity has published a full "API" which explains all of the code libraries that Unity provides. This does not include code from their packages, such as Cinemachine or scriptable rendering pipelines, as far as I know. Those are documented separately.

    https://docs.unity3d.com/ScriptReference/
     
  33. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    There's the scripting reference as has been pointed out and you'll probably also get a lot out of the manual:

    https://docs.unity3d.com/Manual/index.html

    I'd read in the manual first to understand the big picture concepts and workflows then go to the scripting reference to familiarize yourself with the API. Hint, there is very useful helper stuff "hidden" in the math and vector classes, like Vector3.SmoothDamp
     
  34. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    571
    Depending on how you like to learn, you could approach this in many ways. My basic method of learning both Unity and C# was to do the roll-a-ball tutorial. An oldie but goodie, it teaches how script interacts with objects in the scene. Coming from a 3D background I already knew about objects, physics and particles so you might also want to do a basic tutorial for Blender.

    I learn by doing, so my next goal was to make something. I decided I wanted to make it so that a person standing in front of a monitor could wave their arms and make particles fly and move. That task requires a bunch of research, first how to detect a person standing in front of a screen? Googling quickly pointed me to the WebCamTexture documentation. Next, now that I have a live feed, how to detect a person or more specifically their hands? That led me to discover I could use a Kinect and Microsoft's Unity SDK. Now it would be Realsense, but you get the point.

    Once I had the live feed tracking someone's hands, then I need to figure out, how do I attach their hands to something that moves particles? Googling again I found the Particle System Force field. Connect the live feed to a force field, some scripting to increase the force, etc.

    My point is, the API is so deep and rich with stuff, it's just impossible to go through and read it. I think it's a much better approach to decide what it is you want to make and learn as you go along. Tons of code snippets in the Unity API, plus the forum + StackExchange and you can pretty much do anything you want!