Premise : Unity uses a C# scripting environment. It translates this to C++. Ergo alot of what folks think is happening if not familiar with Unity is not exactly what happens under the hood. Backstory : I have read in many threads about this and that method causing garbage collection, allocations and other issues which cause performance hiccups. I am stuck with 3 hard core C# .NET guys and they still can't get their head around AddComponent and Instantiate versus new...445 warnings in console. I have like 300 components using the Unity UI. One of these guys decided he is gonna write a .NET GUI setup for windoze business forms with his own little events and custom buttons API and his three widgets on stage and they blew all to hell and back and won't work because I changed the canvas space to ScreenSpace-Camera. Not very robust for a supposedly superior system. All my stuff still works. He had parent objects at scale 99 and child objects at 0.0012. I set up a Unity template for him. I just checked and got it working in five minutes by just dropping proper UI elements in. He won't use it because it is not a part of his vaunted superior knowledge based .NET driven system. Story : I am preparing to lay this all out to the stakeholders as I am expected to write VR/AR and have cursors change, write voice command for the UI and other systems I would prefer to rely on the Unity API for and not have to write through another API on top of Unity to get to Unity's API but a whole new subsystem has to be written for this reprobate..once he rejiggers stuff for the new canvas space when i am asked to alter it for phone UI or tablet his crap is gonna blow up all over again and the C# guys will be like..did you have to?..ummm..yes.. I need ammo. I have a number of issues I have asked as far as procedure is concerned such as if you know the Count of a List do not use foreach as it causes allocations and sometimes there may be 5k objects looped thru many times in a row. When this burps the VR I will be looked at but I am not allowed to touch this code..affirmative action and all that crap.. I don't want to sound like a bitch doing this and want to lay a solid case to the stakeholders. I have been using Unity daily since 2010 and servicing top end clients and handed over alot of code to established studios who never had an issue with my Unity code, performance of said code nor work ethic. The prime monetary stakeholder trusts me 1000% and told me to make this a Unity app that Unity devs could easily sit down and begin working in. It is 8 years Unity experience versus a total of maybe three years at most amongst them. The fellow with the vaunted superior system was trying to place a flat image as a background and had no clue it was a skybox..just to give you some params for experience or knowledge level. Request : So, having established a framework of reasoning above I want to see a list of things that will work in .NET but do not work the same in Unity due to marshalling to C++, not work at all or are inherently bad practice due to garbage collection. Anecdotes on solving this with other studio mates or employees you had to work with with similar notions may be helpful as well.