Some unity project was built several years ago, that use unity 4/5/2017/2018. But as times go by, as the new version of unity released, you project need to upgrade with the latest unity version too. Most of the assets can be upgrade automatically, but some of them need to be upgraded by hand. Because some module was discarded, or update with a totally new ones. In such situation you need to find some replacement to make it work. The whole bunch of assets and script code can be found in the github repo. So you can find what is really going on here.
Table of Contents
Particle Emitter -> Particle System
Particle Emitter / Particle Renderer / EllipsoidParticleEmitter were discard later from unity 2018. A totally new module named ParticleSystem introduced as the replacement(This module should be introduced in unity 5). There are 3 steps involved when upgrade legacy particles.
1) Create ParticleSystem according the ParticleEmiter
A ParticleSystem component will be created according to the gameobject ParticleEmiter compoennt. Can be done with some Editor Script automatically.
Legacy_Particle_System_Updater.cs will automatically do it for you.
2) Fix code error when switch ParticleEmitter to ParticleSystem
This steps involve some particle play/stop/destroy/enable/disable at most. Usually changing will be listed here soon!
3) Fix particle asset reference
Every asset reference that point to ParticleEmitter / ParticleRenderer should point the new ParitlceSystem component. Component referenced among prefabs, levels should be consider. This process can be done automatically with python script.
Notice: If you run python script code, please make sure your project asset were under text mode. Python code can read and parse YAML text content, but can not handle binary asset.
Deal with GUIText / GUITexture
MyGUIText.cs | MyGUITexture.cs were built to support some legacy code function. Not fully support it’s original function, but can make some text or texture display in the right way.
If you watch closely, you will find that GUIText | GUITexture in unity 5 works not the same as unity 4. The text alignment display obviously differently.
Fix Animation Clip Legacy
Animation clips that marked with m_Legacy: 1 should only be used for Animation component. If this flag is marked incorrectly, both Animation and AnimatorController will missing reference to them. This will cause your animation sytem will not work as expect. A python script file named fix_Animation.py will scan animation clips, and make sure this flag is set correctly or any doubt on it.
Re-save some assets
AnimaterControllerResaver.cs | AnimationCliplResaver.cs | MaterialResaver.cs exists under Asset/Editor folder. Such re-save asset steps should be done in Unity 2017/2018 for the old unity project that was create by unity 5 or even old version. Because the less gap between unity versions will cause less problems. Unity 2022 will read unity 2018 asset smoothly, but will come across problems if it was migrated directly from unity 5.

