GameFramework框架——打包、构建、热更知识点
目录
4. 找到Package下相应打包目标系统(Android)的文件拷贝到StreamingAssets下
6. 你会发现有报错,是飞机预制体 PlayerShit导致的,原因:Mesh Collider 不支持 顶点过多的网格 使用convert模式,提示你给网格减面。
7. 为player_ship_collider减面后,必须重新打包一次,并将其内容重新拷贝到StreamingAssets。(注意不要去错地方拷贝)
一、单机游戏版本打包(无服务器、无热更新)
1.关掉编辑器资源模式
2. 资源模式为Package
3.打包AB包
选中一个Output目录,放Assets目录外。
输出目录(Output Directory)用于指定构建过程的结果输出目录(手动输入的话,记得按下回车键 ^_^),请确保具有访问此目录的权限且具有足够的磁盘空间。
- Working Path:Unity 生成 AssetBundle 时的工作目录。
- Output Package Path:为单机模式生成的文件的所在目录,若游戏是单机游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后构建 App 即可。
- Output FullPath:为可更新模式生成的完整文件包的所在目录,若游戏是网络游戏,生成结束后应将此目录上传至资源服务器,供玩家下载用。
- Output Packed Path:为可更新模式生成的文件的所在目录,若游戏是网络游戏,生成结束后将此目录中对应平台的文件拷贝至 StreamingAssets 后构建 App 即可。一个 AssetBundle 是否会生成到 Output Packed Path,取决与这个 AssetBundle 是否在 AssetBundle 编辑工具中被标记为 Packed
4. 找到Package下相应打包目标系统(Android)的文件拷贝到StreamingAssets下
5. 把PlayerSetting转到Android平台(如果你是其他平台,则上面的AB文件需要去到相应的Package/平台/下拷贝到StreamingAssets),然后构建Build,在模拟器或真机运行。
6. 你会发现有报错,是飞机预制体 PlayerShit导致的,原因:Mesh Collider 不支持 顶点过多的网格 使用convert模式,提示你给网格减面。
7. 为player_ship_collider减面后,必须重新打包一次,并将其内容重新拷贝到StreamingAssets。(注意不要去错地方拷贝)
二、网络游戏构建(*热更新)
1、取消掉Editor Resource Mode
2、改为Updated模式资源加载
3
3、打AB包
4、 配置服务器相关文件
服务器我使用HFS,找到上方的文件夹,然后添加进服务器
在桌面新建一个version.txt文件,输入内容:
{
"ForceUpdateGame": false,
"LatestGameVersion": "0.1.0",
"InternalGameVersion": 1,
"InternalResourceVersion": 6,
"UpdatePrefixUri": "http://localhost/Windows",
"VersionListLength": 7158,
"VersionListHashCode": 1950701509,
"VersionListZipLength": 2648,
"VersionListZipHashCode": 915433963,
"END_OF_JSON":""
}
这个文件的key名是GF框架的VersionInfo类的属性名,一一对应上,版本不同可能有所不同的。
ForceUpdateGame 对应是否强制整包更新,默认为false 不整包的。整包更新 其实只是做了个跳转到指定url的功能,让玩家去官网下载之类的。这url怎么设置后面说到。
LatestGameVersion
InternalGameVersion 这个可能是内部的版本,暂时没看,暂定保持为1 即可。
InternalResourceVersion (PS:此处已自增+1后的版本号,实际当前打包的是6)
UpdatePrefixUri
"VersionListLength": 7158,
"VersionListHashCode": 1950701509,
"VersionListZipLength": 2648,
"VersionListZipHashCode": 915433963,
对应地填上去,如 hash code 对应 VersionListHashCode,其中[...]的内容不用填写。
"END_OF_JSON":"" 这玩意不用管,不知道是干嘛的,默认这样就行了。
将创建好的version.txt,放到服务器HFS根目录下,服务器配置完毕。
5、配置客户端
找到工程里的BuildInfo.txt文件,下面这个key的值为服务器的version.txt地址,上面你看到的10.0.0.2是我本地临时IP,但不知道怎么的用这个IP会很卡,就换成了localhost去指定。
关键配置好CheckVersionUrl即可,其他例如WindowsAppUrl是整包更新时跳转window的整包更新网址,其他同理(这里我随意搞了个哈哈)
这样就完成了!哈哈~
6、直接运行游戏,可以看到如下的效果~
解决紫色问题
紫色是因为材质的shader没有正常打包,加载到环境的问题。
例如背景变紫色,找到背景Backgound物体的shader
需要添加Unlit/Texture到Always Included Shaders列表里
然后去打包测试,发现新问题!没错,所有内置shader必须设置到Always Included Shaders才会正常!
最终大致要新增这3个shader,才解决我所见的问题
若需要打Android包到真机或模拟器测试,需要一个公网服务器IP,将HFS的IP设置为公网IP,同时相关的url都要改动,比如把上面一系列的localhost改为公网IP即可。本人暂时不打算这部分内容,可自行尝试。
本文地址:https://blog.csdn.net/qq_39574690/article/details/109234506
上一篇: ASP系列讲座(十三)向浏览器传送脚本
下一篇: js去重合并