Unity開發Nintendo Switch平台移植簡介
准備工作
任天堂的開發者賬號,可以在任天堂開發者網站查看更多信息。沒有賬號則無法查看Switch開發的相關文檔。
Switch開發機:SDEV或EDEV。具體使用后文介紹。
Switch開發的SDK(需要開發者賬號才可以下載)。
Switch開發機
做過平台移植的應該知道開發機的概念。我們知道有些平台程序是無法直接安裝的像PS4、XBOX和Switch等,它們和安卓等不同,要安裝程序需要從商店下載或從光盤卡帶中加載。我們無法把打包好的程序直接安裝到這些機器上。出於調試或其他目的平台商提供開發機給開發者使用,我們可以在相應的開發機直接安裝並調試我們的程序。
Switch開發機有兩種SDEV和EDEV,它們都可以用來運行我們的Switch程序。SDEV在功能上更強大,可以完成大部分的調試任務。但SDEV沒有電池,電量是一個定值,可能無法完成電量相關的測試,另外SDEV體型較大無法直接使用Switch底座。EDEV外形看起來和生產環境的Switch一樣,文檔也說它的硬件環境更像生產的Swich,可以做最終的測試。更多詳細的區別請看文檔,下附鏈接。
關於SDEV的網絡我想特別說一些,以防踩坑。SDEV有網絡接口可以接網線並同時可以連接無線網絡,但有線連接和無線連接卻擁有不同的用處。有線連接是一些Switch開發工具的專用數據傳輸接口,比如程序包的安裝、SDEV的固件升級等, 和主機在同局域網內就可以數據傳輸,但並不提供聯網服務。無線連接則用於提供具體的聯網服務。主要提一下Unity的性能檢測工具Profiler等連接SDEV則使用的是SDEV上的無線網絡。
Switch SDK
Nintendo Dev Interface是任天堂提供用來管理SDK和開發機的軟件,主要提供SDK的下載更新和開發機的升級等功能。我們只需要下載Nintendo Dev Interface就可以完成我們的Switch的開發環境配置。我們需要注意Switch SDK版本、開發機固件版本和Unity版本上的一致,只有一致我們打包的程序才可以在開發機上運行。
在(SDKRoot)/UnityForNintendoSwitch目錄下有對應Unity版本的UnitySetup-Nintendo-Switch-Support-for-Editor的安裝程序,安裝完成就可以把Unity切換到Switch版本並打Switch包了。
在(SDKRoot)\UnityForNintendoSwitch\Plugins\NintendoSDKPlugin\Libraries目錄下有NintendoSDKPlugin.unitypackage包,這個包提供的Switch API的Unity版本,可以使用這個包來開發Switch上特有的功能等。在(SDKRoot)/UnityForNintendoSwitch/Samples提供了一些例子供我們學習。
打包運行
在Switch運行我們的程序前,我們要確保開發電腦與Swithc開發機連接成功,這些才可以進行數據傳輸。Switch開發機提供了多種方式與電腦相連接,具體可以參考關於開發機的相關文檔。這里只提SDEV的網線連接,前面提到SDEV擁有網口,只要連接SDEV的網線和我們的開發電腦在同一個局域網內就可以連接。我們可以使用TargetManager工具確認連接是否成功。安裝SDK時會安裝TargetManager,可以在Nintendo Dev Interface或開始菜單中打開。TargetManager用於管理已經連接的開發機,提供向開發機安裝程序、程序運行時log輸出以及初始化開發機等功能。
Switch打包有兩(三)種格式NSP和NSPD(和NSS),由Untiy的Switch Build Settings頁面中Create NSP ROM File選項決定,平時測試時可以使用NSPD格式。NSPD格式只能使用Target Manager安裝。NSP則是一個真正的Switch程序包,可以安裝在Switch開始機上,也是最終發布的格式。
附加鏈接
(以下鏈接均需要開發者賬號才可以訪問)
- Swich開發文檔列表:https://developer.nintendo.com/html/online-docs/g1kr9vj6-en/。
- Switch開發總覽:https://developer.nintendo.com/html/online-docs/g1kr9vj6-en/document.html?doc=Packages/Docs/NX-Overview/NX-Overview.html?docname=Overview,9.1節講了SDEV和EDEV的區別。
- Guidelines:https://developer.nintendo.com/html/online-docs/g1kr9vj6-en/document.html?doc=Packages/Docs/Guidelines/NX-Guidelines/NintendoSwitch-Guidelines.html?docname=Guidelines。這篇文檔很重要,應該要通讀,主要講了Switch開發中的一些規則,如果違反了規則可能無法通過任天堂的審核。
- Switch Unity開發手冊:https://developer.nintendo.com/html/online-docs/g1kr9vj6-en/document.html?doc=Packages/middleware/UnityForNintendoSwitch/UnityForNintendoSwitchDevManual-en.html?docname=Unity%20for%20Nintendo%20Switch%20Development%20Manual
- Nintendo Dev Interface下載地址:https://developer.nintendo.com/group/development/g1kr9vj6/downloads
后續會寫兩篇博客講Switch平台輸入和存檔處理。
