我没有使用Unity3D的经验,所以想在这里问一下。
我有一个内置于Unity3D中的应用程序,该应用程序允许用户在某个时候保存文件。然后可以将此文件重新加载到应用程序中,以供以后使用。在该应用的iOS版本中正常运行。但是,我也使用Webplayer将应用程序嵌入到浏览器中。
嵌入后,由于安全性/浏览器限制,我无法将文件加载到应用程序中。
那么,有没有办法解决此问题,或者有没有办法拥有普通的html表单并允许该文件在应用程序中上载和打开?
任何帮助将不胜感激 :)
基本上,您有两种解决该问题的好方法。
1)最简单,最省力的方法是使用PlayerPrefs来存储玩家进度数据。您也可以在独立版本中使用它,而不必担心会保存任何文件。在网络播放器上,几乎没有限制:
WebPlayer
在Web播放器上,PlayerPrefs
存储在以下位置的二进制文件中:Mac OS X:〜LibraryPreferencesUnityWebPlayerPrefs
Windows:%APPDATA%\ Unity \ WebPlayerPrefs每个Web播放器URL都有一个首选项文件,并且文件大小限制为1 MB。如果超过了这个限制,
SetInt
,SetFloat
并SetString
不会存储值和抛出PlayerPrefsException
。
要记住的一件好事是,确保对值进行加密,以防止用户作弊。
2)WebPlayer中的第二个选项是使用服务器提供身份验证并保存进度。对于Web应用程序来说,这是很常见的,尤其是在Facebook等商业平台上。
此选项更具通用性,因为用户可以在任何桌面上玩,并且他始终可以访问自己的保存,而使用PlayerPrefs则很难实现。
在WebPlayer上,由于安全限制,很难迫使用户保存任何内容。为用户提供保存-下载链接,然后手动重新上传之类的解决方案似乎是非常糟糕的选择,无论如何,它可能都涉及服务器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句