Wenn du den Unity Sourcode der Engine willst, geht das richtig tief ins Geld, soweit ich mich erinnere, waren das um die 250k Dollar. UT haben zwar den C# Source der Engine und dem Editor veröffentlicht, aber es bleibt C#.
Natürlich kannst du C# genauso wie C++ dekompilieren, aber es ist ein gewaltiger Unterschied, ob du nun C# Code oder Assembler Code siehst. Bei ASM musst du Code lesen und verstehen können, dazu brauchst du dann auch noch passende Debugger wie Olldydbg nebst passenden Plugins und Scripten. Bei C# dürften wohl C# Programmierskills reichen.
Wie willst du den Scriptcode vernünftig schützen, damit es Leuten erschwert wird, Cheats zu bauen? Klar, es gibt keinen 100%igen Schutz. Verhasst oder nicht, aber mit Denuvo kann man nativ kompilierten Code schützen. Obfuscatoren für C# gibt es wohl keine (mehr). Es gibt einen, Name entfallen, aber der ist wohl eingestellt und ist nicht mehr zu kaufen. Selbst wenn es einen Obfuscator gibt, der Code ist immer noch lesbar, auch wenn es erschwert wird. Variablen, Memberfunktionen etc. mögen umbenannt werden, aber die Logik kann man immer noch sehen.
Es ist nicht möglich, einen vernünftigen Kopierschutz mit C# einzubauen, du kannst mir sehr gerne das Gegenteil beweisen, ich interessiere mich tatsächlich dafür. Im Unity Forum hatte ich sogar einen Thread dazu gemacht, aber letzten Endes ohne wirklichen hilfreichen Ausgang. Client/Server-Checks und die lassen sich im Client manipulieren oder im schlimmsten Fall rauspatchen und ggf. sogar emulieren.
Ich nehme mal an, du meinst AOT? Wenn man Unity Spiele für Android kompiliert, wird ein anderer compiler zwischengeschaltet, der den C# Code nach C++ Code konvertiert, weil Google auf Android verbietet, dass Bytecode ausgeführt wird. Ob das evtl. zwischenzeitlich geändert worden ist, weiß ich nicht! Allerdings muss ich nun an der Stelle anmerken, dass ich nicht ganz raffe, wie AOT genau funktioniert - vor allem mit Unity. Auch weiß ich nicht, ob das für Windows oder Linux basierte Spiele funktioniert.