[Solved] Version 2021.2 vs 2020.3

At the moment, is there a good reason to go for 2021.2 instead of 2020.3?

I mean normally the older one is more stable, but I’m wondering if 2021.2 might have something new I don’t know of.

The package manager got a bit better in the later versions
And URP became more feature rich, there’s more but these are the ones I cared about.

1 Like

As always its super dependent on what platforms you will be targeting, do you have anything in mind in particular?

For us its been amazing, there is a lot of great features both for artists and programmers and in general the package releases available for 2021 cycle are SO much better than 2020 (thats a reason alone to do it, waaaay less “package hell” on a regular basis compared). I like the new in engine UI now I am used to it, and I find it a lot more stable than 2020 (even more stable than 2020 LTS which is surprisingly crashy).

I wouldnt say its the difference between like unity 4 and 5 or anything like that, but its a very solid release after a previous year of pretty “meh” ones

1 Like

VR, Desktop (well, MAYBE Oculus), R&D smaller-scale project with uncertain future.

I don’t know anything about VR, but in general, 2021 is much better (faster, more comfortable, they fixed a ton of stuff already and have shiny new backend which IDK if 2020 got it or not, probably not). I consider the 2020 a botched version.

2 Likes

The QoL stuff, for example:

  • Improved FBX model importing speed.

  • Improved project startup times. Projects with 900,000 files will load at least 30 seconds faster.

  • You can now drag multiple GameObjects to the Project Window to create multiple prefabs at once.

  • Arrays and lists are reoderable.

  • View LOD relative screen size perentage in table-formatted view.

  • Enter play mode time improvements (In our tests, this means that for a scene with 30,000 static objects, entering play mode is now faster by about two seconds.)

  • Added an OptimizeFor option to [BurstCompile], allowing users to specify whether they want to prioritize runtime speed, runtime size, or compilation time

  • Physics: Added an Enable All and Disable All button to the Physics Project Settings’ Layer Collision Matrix, which allows enabling or disabling all layer collisions.

  • Scene/Game View: Introduced new Overlays feature. Tools and contextual views are now available directly in the Scene View, and are completely customizable.

https://blog.unity.com/technology/the-road-to-2021-team-quality-of-life

“But we’re equally determined to improve workflows and your overall quality of life when working in the Editor.”

I use 2020.3 for DOTS and 2021.2 for everything not-DOTS and 2020.3 is noticeably worse imo with all of the small QoL additions available in 2021

2 Likes

Alright, I’m sold. 2021.2 it is, then.

3 Likes

Not to piggyback on someone else’s post, but is it worth upgrading a project to 2021 that’s been started in 2020?

My current project uses URP, and it sounds like 2021 has a number of great updates for it that I could take advantage of, among other things.

Or is it more likely to screw up my current project more than anything?

More likely to help than be bad, 2021 is better in almost every way than 2020 (which sucked) and URP especially has gone leaps and bounds from 2020 > 2021

Hmmm . i’m always a die-hard LTS evangelist, but this thread might turn me over to the dark side and make me use 2021.2 as my base version already …

Well in that case, I know what I’m doing this weekend.

Another side question, would version control have your/my back if the upgrade went tits up?

Yes. Commit prior to upgrading > Upgrade > Make sure project builds, functionality wasn’t lost etc.
Anything bad happens, revert to the previous state. Keep the old version of Unity installed just in case, you’ll be fine.

2 Likes

Repo saves a lots of headech.
But if comes to upgrading to new Unity version, I always copy project folder, and delete libraries.
That way I have two or multiple projects for different Unity versions.
Switching between versions if ever neccessery is then painless and fast. Otherwise it can be very time consuming, if using just repo branches, to move between versions.
No need reloading libraries, or scripts files reverting, because of Unity packages differences.
Once you happy with the upgrade, you can archive previous project directory.

3 Likes

For realz. Countless burns over the years has drilled this into me.

2 Likes

I’ve just found that in 2021.2 VR integration plays nicer with Virtual Desktop, and I no longer need to run a batfile if I want to see VR preview in my HMD. So that’s one more improvement.

I have been forced to upgrade cause LTS wouldn’t play nice with the Android gradle tools in recent releases(they changed them), often giving me error when building with some external sdk like facebook. If I get this many errors now, I can’t imagine the amount of issues I will run into into the near future with LTS and the fast pace of Android OS releases.
So I got tired and did upgrade to 2021.2 and the errors went away.
And in general, if we are not comparing with the first releases of a Major version, the LTS did never feel particularly more stable than Tech as I had the same issue in the past when I was forced to upgrade from the previous LTS and often they share the same bugs.

I’m surprised no one mentioned it seeing as garbage collection can be a potential problem:

  • Scripting: Multithreaded asset garbage collection and increased speed by up to 2.5x.

Additional ones that stood out for me:

  • Editor: Optimized BC7 (“high quality” compression setting on PC/Console platforms) texture compression. Performance is 2-3 times faster. This optimization uses a new texture compressor (bc7e). An option is available in Editor Settings to switch to the old one (ISPC) if needed.

  • Mono: Upgraded to a recent version of Mono (~6.12), which brings most bug fixes from the upstream Mono project.

  • Scripting: Updated C# language version to 9.0 for compilation and IDE’s
    We will support a subset of the language features from:
    https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9
    These is the features that we support:

  • Pattern matching enhancements

  • Function pointers

  • Target-typed new expressions

  • Static anonymous functions

  • Target-typed conditional expressions

  • Extension GetEnumerator support for foreach loops

  • Lambda discard parameters

  • Attributes on local functions

  • New features for partial methods.

  • Search: Improved asset search performance by ~4x.

  • Undo System: Added the Undo history UI.

6 Likes

Seems like an overall good release, then.

P.S. I’ll need to readup on C# 9 features…

Also, there is major improvement how console handles logs.
It is much more performant and faster overall.

Welp, looks like I’m spending the morning upgrading… thanks a lot guys. :smile:

1 Like