Unity4.6.2发布 支持64位iOS
IL2CPP是Unity內部開發的一款創新型腳本技術。它能極大地提高項目中所有腳本的性能,并且完美兼容當前iOS構建所使用的Mono-AOT解決方案。
我們可以使用IL2CPP將腳本快速移植到新平臺(例如WebGL等)及架構,ARM64(64位iOS系統架構)就是其中之一。使用Unity4.6.2就可以選擇Universal構建同時支持32位及64位iOS系統的應用。
大幅度性能提升
在IL2CPP項目的alpha和beta階段,我們從Unity社區反饋中獲益良多。而且,據測試過64位iOS及IL2CPP的用戶們報告,使用新的腳本底層運行速度大大加快。
舉個例子,Andrew Witte在他的32位iOS設備上運行了RayTraceBenchmark ,得到如下數據:
?
當然,我們最關心的還是場景,但從我們的基準測試中也可以看出顯著的性能改善。
下圖是用UnityScript編寫的JPEG解碼器運行耗時比較:
?
下面是一個Mandelbrot基準測試,它是 測試WebGL平臺上Unity性能基準的一部分;圖示表明了IL2CPP上明顯的性能提升。
?
開啟64位iOS移植之旅
在此新版本中,要讓你的項目支持IL2CPP腳本底層及64位iOS系統只需點幾下鼠標即可。在Player Settings面板的iOS標簽下有兩個下拉列表:“Scripting Backend” 和 “Architecture”。
?
在scripting backend下拉列表中選擇IL2CPP來支持64位iOS系統。默認Architecture使用的是“Universal”,這意味著構建的應用會包含ARMv7和ARM64兩個二進制部分。
如果現有項目中包含了插件,你可能需要將它們升級到可以支持64位iOS及IL2CPP的版本。我們已經與Unity插件開發商Prime31合作將他們所有的插件都升級到了iOS64。你可以在這里下載。
以上步驟完成后,將你的工程導出到Xcode。注意,買二手游戲賬號由于IL2CPP會將腳本轉換為C++再導入Xcode工程,你需要設置Configuration為Release,以便Clang編譯器最大程度地優化IL2CPP生成的代碼。
在Xcode 6中的設置過程如下圖:
現在可以在設備上運行你的項目了。如果Player Settings中Architecture設置為“Universal”,那不管是32位還是64位設備,應用會自動運行相應的代碼。你可以在Unity用戶手冊中查看 詳細的 iOS 64位升級指南。
注意事項:
WebRequest/WebClient API當前可訪問但沒有具體實現。
任何需要委托BeginInvoke/EndInvoke的異步套接字功能目前都未實現。我們會在后續發布的補丁中解決這個問題。
?
- 盡管其它委托方法都能正常工作但BeginInvoke/EndInvoke還不行。我們會在后續發布的補丁中解決這個問題。
- RakNet暫未移植到IL2CPP,如果項目或第三方庫中引用到它會有問題。我們會在后續發布的補丁中解決這個問題。
- 使用IL2CPP時后臺會一直運行Stripping。這可能需要采取措施來防止裁掉使用中的類型。
- 如果將Stripping設置為micro-mscorlib,可能會導致類型缺失的編譯錯誤。我們計劃在以后的版本中使用IL2CPP時徹底禁用該選項。
- Xcode編譯時間太長。主要原因是需要編譯的代碼量過大。
- 暫不支持Managed Debugger。這已經在計劃中了。同時,已經有測試用戶使用Xcode Debugger成功調試了腳本代碼。
- 使用IL2CPP腳本時開啟Xcode內置Profiler會導致編譯錯誤。
我們非常清楚上述的某些條目會導致移植過程延誤。自從蘋果10月20日宣布 新上傳到App Store的iOS應用都必須支持64位系統以來,我們也馬不停蹄地忙活著,以前所未有的速度及時處理Bug反饋同時每周發布更新版本。所有相關工作人員都非常關心并盡快解決每一個問題。
如果你的應用已經發布到App Store,我們建議你繼續使用Mono構建ARMv7來更新應用。蘋果表示截至6月1日前都可以這樣做。進一步的建議是盡快著手使用IL2CPP對你的項目進行內測。
總結
以上是生活随笔為你收集整理的Unity4.6.2发布 支持64位iOS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯X5联手白鹭Egret Runtim
- 下一篇: 爆发前的最后按钮 白鹭推HTML5首款生