C# se dá verzovat úplně normálně (metafile je prostě jen info pro Unity, které se mění jen vyjímečně, takže zavarzuješ a neřešíš), s assety je potíž, ale to bude hádám v každém enginu. Jinak Unity od jisté verze (možná 2018?) podporuje textově definované assety (scény, prefaby) a ty už se dají verzovat trochu lépe. Co se týče závislostí, ty je lepší řešit přímo v Unity projektu, než v csproj (což ani nejde, protože jsou při každém buildu přegenerované). Ve všech herních studiích, kde jsem dělal (spíš indie), se používalo SVN nebo GIT, Perforce nikde, protože je drahý (afaik ho používá Bohemka).
To, že každá nová verze něco rozjebe je bohužel fakt - někdy jsou to drobnosti, někdy zásadní věci. Přechod na vyšší patch release v rámci jedné verze ale většinou není velký problém. Jinak se to dělá tak, jak píše jehovista, až do konce projektu používáš stejnou verzi Unity, případně (pokud potřebuješ třeba nějaké novější featury) uděláš přechod a vyřešíš jednorázově všechno rozjebané.
Co se testování týče, to je složitější. Nějaké unit testy apod. to (afaik) nepodporuje, jedině si to všechno udělat externě, což ne vždy má smysl. Nikde, kde jsem dělal se unit testy na hru nedělaly, testovalo se ručně nebo pomocí toolů jako Selenium.
Automatizovat build process není problém (s externími tooly), všechno se dá volat i z commandline, nebo si můžeš zaplatit build server od Unity.