4

我们正在将我们的游戏从我们自己的画布页面切换到使用 Facebook 上的 Unity 集成。然而,在我们的开发测试中,我们偶尔会遇到从浏览器缓存加载 webplayer 二进制文件的问题,即使更新的版本已上传到服务器。

手动清除浏览器缓存可以解决问题,但这并不是我们想要一直呈现给用户的解决方案。以前,当我们自己嵌入统一对象时,我们还通过 url 传递了一个 ?version 标志,这将使其保持最新状态,但是在打开集成的情况下我们不能再这样做了,除非我们手动更新二进制文件每次我们进行构建时,我们的应用程序设置中的位置链接(有点让人头疼,因为我们的构建过程的其余部分是自动化的)

有没有办法解决?谢谢。

4

2 回答 2

2

我们发现只需要添加“?version=xxxx”

这行得通,而且非常好。我现在做的只是在主链接中更改版本(?version=1.52):

<a href="http://cometoplaynow.com/Labyrinth3D/Labyrinth3D.html?version=1.52">

使用它的优点:

  1. 仅更改 1 个数字 - 链接仍然相同(如果人们从您的网站打开游戏)

  2. 节省将保持原样(如果您更改 .unity3d,您将丢失 PlayerPrefs)。

于 2014-11-18T14:48:49.837 回答
2

我们有完全相同的问题,我可以说唯一的解决方案是每次构建时更改二进制文件名,但仅限于您的生产环境。这是我们的解决方案:

  • 我们有开发(沙盒模式)和生产环境,每个都有一个应用程序。

  • 对于开发,我们在本地运行所有内容,我们有构建管道并将二进制文件复制到具有相同名称的适当位置,始终如 MyGame.unity3d,我们已将浏览器设置为不缓存任何内容,这解决了测试问题。

  • 对于生产,我们的构建管道使用:YourGameNameMainVersion.SubVersion.TimeStamp 构造二进制名称,例如:MyGame0.3.1006-1004.unity3d,这个是在每次构建时从 Facebook 的应用程序设置页面手动设置的。但这不是一个大问题,因为您不会希望每天进行一次以上/两次的新构建以进行生产。

于 2014-06-11T14:11:08.983 回答