0

我对 Unity3D 没有经验,所以想在这里问。

我有一个内置于 Unity3D 的应用程序,允许用户在某个时候保存文件。然后可以将该文件加载回应用程序以供以后使用。在应用程序的 iOS 版本中运行良好。但是,我也使用 webplayer 将应用程序嵌入到浏览器中。

嵌入时,由于安全/浏览器限制,我无法将文件加载到应用程序中。

那么,有没有办法解决这个问题,或者有没有办法拥有一个普通的 html 表单并允许文件在应用程序中上传和打开?

任何帮助将不胜感激 :)

4

1 回答 1

1

基本上,您有两种解决该问题的好方法。

1)最简单的工作是使用PlayerPrefs来存储玩家进度数据。您也可以在独立构建中使用它,然后您不必担心保存任何文件。然而,在网络播放器上,限制很少:

WebPlayer
在 Web 播放PlayerPrefs器上,存储在以下位置的二进制文件中:

Mac OS X:~LibraryPreferencesUnityWebPlayerPrefs
Windows:%APPDATA%\Unity\WebPlayerPrefs

每个 Web 播放器 URL 有一个首选项文件,文件大小限制为 1 兆字节。如果超过此限制,,SetInt将不会存储该值并抛出.SetFloatSetStringPlayerPrefsException

需要记住的是确保您加密您的值,以防止用户作弊。

2) WebPlayer 中的第二个选项是使用服务器提供身份验证和保存进度。对于网络应用程序来说,这很常见,尤其是在Facebook等商业平台上。

这个选项更加通用,因为用户可以在任何桌面上玩,并且他将始终可以访问他的保存,而使用 PlayerPrefs 将很难实现。

在 WebPlayer 上,由于安全限制,很难强制用户保存任何内容。像为用户提供保存下载链接然后手动重新上传这样的解决方案似乎是非常糟糕的选择,而且它可能无论如何都会涉及服务器。

于 2014-04-28T14:14:36.100 回答