Unity[C#] Reflection To Update Scripts

來源:互聯網
上載者:User

標籤:android   http   color   使用   strong   檔案   

我正在使用Unity 3D的一個項目。這個項目是一個Android的應用,它會下載AssetBundles並載入它們的內容,但由於AssetBundles不能包含指令碼,我將使用先行編譯的C#指令碼,並使用Mono反射來載入它(我不知道我會怎樣,但看著辦吧) 。但現在我不知道該如何先行編譯.cs檔案,所以任何人都可以協助我?

答:把你的指令碼通過MonoDevelop / VisualStudio編譯成.dll,將你script.dll複製到您的統一項目的資產檔案夾,將副檔名從.dll檔案到.bytes

 

根據這個手冊,我可以包括指令碼,位元據,並通過反射載入它們。我瞭解所有的步驟,除了一個:我怎麼可以編譯指令碼來擷取位元據stroring它的二進位檔案。?是否有任何教程/協助?

UPD: 實際問題都可以重新表述為:“我怎麼可以編譯單個檔案與MonoDevelop的,並得到其位元組碼”

Solution:

1.Open Monodevelop and create C#Library project
      2.Add UnityEngine.dll to References
      3.Compile your scripts
      4.Copy bin/.dll from your library project folder to Assets of your unity project and change extension from .dll to .bytes
     That‘s all.

實現原理:把Scripts打包進AssetBundles中,在遊戲運行時動態下載Assetbundle,通過Reflection來載入並執行其中的方法,在Android平台是可行的,但IOS是不可行的,因為Apple AppStore不允許這麼做。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.