我们正在将游戏从我们自己的画布页面转换为在Facebook上使用Unity集成。但是,在我们的开发测试期间,我们偶尔遇到一个问题,即webplayer二进制文件从浏览器缓存中加载,即使上传的新版本已经上传到服务器。
手动清除浏览器缓存可以解决问题,但这并不是我们希望始终向用户提供的解决方案。以前,当我们自己嵌入统一对象时,我们也传递了一个带有url的?版本标记,这将使其保持最新状态,但是除非我们手动更新,否则我们无法再通过集成打开它每次我们进行构建时,我们的应用程序设置中的二进制位置链接(由于我们的构建过程的其余部分是自动化的,所以在对接中有点痛苦)
这有什么办法吗? 感谢。
答案 0 :(得分:2)
我们有完全相同的问题,我可以说只有解决方案是每次进行构建时更改二进制文件名,但仅适用于您的生产环境。这是我们的解决方案:
我们有开发(沙箱模式)和生产环境,每个都有一个应用程序。
对于开发,我们在本地运行所有内容,我们有buildpipeline,它构建并将二进制文件复制到具有相同名称的适当位置,总是像MyGame.unity3d,我们已经设置了我们的浏览器不要缓存任何东西,这解决了测试的问题。
对于生产,我们的buildpipeline构造二进制名称: YourGameNameMainVersion.SubVersion.TimeStamp like:MyGame0.3.1006-1004.unity3d,这个是在每个版本的facebook的应用程序设置页面中手动设置的。但这不是一个大问题,因为您不希望每天生产超过一次/两次的新生产。
答案 1 :(得分:2)
我们发现所有需要做的就是添加"?version = xxxx"
这很有效,而且非常好。我现在做的,只是在主链接中更改版本(?version = 1.52):
<a href="http://cometoplaynow.com/Labyrinth3D/Labyrinth3D.html?version=1.52">
使用它有好处:
仅更改1个号码 - 链接仍然相同(如果人们从您的网站打开游戏)
节省将保持不变(如果您更改.unity3d,您将丢失PlayerPrefs。)