【问题标题】:Loading a file into a unity3d application that is embedded using webplayer将文件加载到使用 webplayer 嵌入的 unity3d 应用程序中
【发布时间】:2014-04-28 12:02:25
【问题描述】:

我没有使用 Unity3D 的经验,所以想在这里问一下。

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

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

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

任何帮助将不胜感激:)

【问题讨论】:

    标签: unity3d embed unity-web-player


    【解决方案1】:

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

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

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

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

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

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

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

    此选项更加通用,因为用户可以在任何桌面上玩游戏,而且他始终可以访问自己的存档,而使用 PlayerPrefs 很难实现。

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

    【讨论】:

    • 非常感谢。我认为我们需要用这个回到统一开发并对其进行修补。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多