1. 程式人生 > >對於unity3D跨平臺的理解

對於unity3D跨平臺的理解

由於unity只支援c#(從2018版本之後不再相容JavaScript),所以跨平臺是藉助Mono實現,首先將程式碼編譯成CIL(雖然是以.exe形式,但實質上是CIL),然後在不同平臺上執行時,由Mono再次將CIL編譯成目標平臺的程式碼。說的普通點,mono就是.net的虛擬機器。至於CIL到底是個什麼,可以參考https://www.cnblogs.com/murongxiaopifu/p/4211964.html

最後總結起來U3D跨平臺的原因:

  1. CIL是CLI標準定義的一種可讀性較低的語言。
  2. 以.NET或mono等實現CLI標準的執行環境為目標的語言要先編譯成CIL,之後CIL會被編譯,並且以位元碼的形式存在(原始碼--->中間語言的過程)。
  3. 這種位元碼執行在虛擬機器中(.net mono的執行時)。
  4. 這種位元碼可以被進一步編譯成不同平臺的原生程式碼(中間語言--->原生程式碼的過程)。
  5. CIL面向物件
  6. CIL基於堆疊