视频:
字幕版:
我近一年有帮一些小开发者和发行商
移植多款游戏
也算是有实践的经历
如果你是刚拿到开发机或者打算自己
移植游戏到Switch上
那么这个视频会帮你减少一些摸索的时间
目前普通的个人开发者是拿不到
Switch2的开发机
但Switch2基本是向下兼容
所以理论上只要Switch能跑的
Switch2也是没问题的
由于保密协议
我更多是分享方向性的移植技术
那我们开始吧
首先从官方渠道
下载Unity引擎
当你开发机拿到手便可以通过
开发者后台下载一个软件
这个软件可以来下载对应的开发工具集
可以选择跟你项目相近版本的引擎
下载下来的包内就包括了Unity引擎
以及对应的Switch支持包
如果不从官方渠道下载
也可以用国际版的Unity
但不推荐使用带C1后缀的国内版Unity
我在帮一个开发团队移植时候
他们一开始用国内版Unity
移植过程中出现一些奇怪的问题
但我这边却没出现
后来他们换到国际版本就没问题了
所以我建议还是从这个任天堂官方下载对应的国际版Unity引擎
Switch支持包的功能就是能让你在Unity内切换到Switch的开发环境
切换到Switch环境除错
官方文档会指导你配置Switch开发机开发环境
然后Unity引擎和支持包安装完成就可以打开你的项目切换到Switch环境
除非代码写得很优秀
一般会有报错信息
由于每个项目不一样所以需要根据实际情况来将报错信息去除
一般研究一下也不复杂
比如有些是代码没考虑跨平台
则需要更改成跨平台的逻辑
可以用UNITY_SWITCH宏来区分
有些是第三方库没考虑Switch目标平台
这时就需要对插件库进行修改
当没有报错就可以打包出包真机运行了
设置选择用户登陆
如果你有观察游玩Switch游戏
会发现很多游戏进入游戏前
都会让你选择游玩的用户
现代游戏系统很多都是存档跟着账户走
所以除非特殊,都需要设置开始游戏前
选择对应的用户
跟安卓和ios类似,Switch也有
对应的App配置文件
在这个配置文件内就可以对账户进行配置
处理真机崩溃问题
一般第一次运行游戏可能会游玩就崩溃
常见的两种崩溃形式
一个是内存占用过大
一般可以通过优化图片纹理进行处理
文档中有推荐的纹理压缩格式
我一般是写了一个批处理
将对应的图集和图片设置一下
另一个导致崩溃则是读取写入文件导致
Switch或者主机系统一般需要
使用对应的存档系统
在这个阶段可以先把存档逻辑注释掉
保证正常进入游戏先
之后再加入专属的存档逻辑
在Switch上是不允许使用
.Net的文件系统代码
具体逻辑官方的SDK有案例也可以参考
Unity中有些特别的比如
PlayerPrefs的逻辑也需要更改
所以我建议是不用这个PlayerPrefs进行存储
而是用统一的文件读取写入操作进行处理
其中有一个特别坑的地方是调用Application.persistentDataPath时候
其底部代码会进行.net的文件操作
然后系统崩溃
所以在Switch上不能调用这个方法获得路径
一些零零碎碎需要注意的问题
最好使用AB包
如果把游戏资源都放在
Resources里面进行加载
会导致一进入游戏就黑屏比较久
才到第一个场景
Switch的IO性能比较弱,黑屏很久的话
会不符合规定
所以比较多资源的项目推荐使用AB包
来把加载过程放到后面进行加载
另外还需要考虑720P的分辨率适配
一般游戏都会适配1080P的分辨率
但Switch掌机模式是720P
有些开发者就会忽略这个分辨率测试
总的来说
将Unity游戏移植到Switch平台需要从官方渠道下载安装国际版Unity引擎和平台支持包
修复对应平台的报错信息保证可以顺利打包
设置启动时候需要选择对应账户
加入专属的Switch存档逻辑
注意看项目是否需要使用AB包
以及注意720P下分辨率适配
对于三个人左右的小项目移植
程序方面大概预留两周工作时间
如果项目复杂度比较高
相对应的移植时间也需要预留多些
以上便是我这次的分享
希望对你移植Switch
能有所帮助
也希望能看到更多小开发者的游戏登陆主机平台
如果你在使用Unity引擎
移植Switch过程中
有遇到其他问题
也欢迎私信与我探讨
我们下个视频见



没看到字幕两个字前我以为是首诗hhh
@sdjdasha:哈哈!