使用 Laravel 框架托管 Unity WebGL 游戏

Hosting Unity WebGL Game using Laravel Framework

如何将我在 WebGL 中构建的 Unity 游戏放入 Laravel?

仅供参考,Unity WebGL 在构建时为我提供了这些文件: - 构建(文件夹) - 模板数据(文件夹) - index.html

让我说说我做了什么:

[我如何使用 XAMPP 测试游戏是否在 WebGL 中运行]

  1. 我在 WebGL 中构建了一个 Unity 游戏
  2. 我把建好的文件夹放在xampp/htdocs目录下
  3. 我运行xampp,然后开启apache服务器
  4. 我打开浏览器并转到 localhost/mygamefolder
  5. 它工作正常,但这是使用 xampp

现在我想要的是,如何使用 Laravel 框架托管的服务器测试游戏是否正常运行...

[我做了什么]

  1. 我把建好的文件夹放到mylaravelproject/public目录下
  2. 我从 Unity 构建的项目中复制了 index.html 文件的内容并将其粘贴到我的视图文件之一 (.blade.php)。
  3. 我根据我放置构建文件夹的路径更改了标记处的样式表和引用。
  4. 我打开终端然后运行'php artisan serve'
  5. 我打开浏览器并转到终端中显示的 IP 地址
  6. 我转到了我放置游戏的页面,但是游戏没有加载。 (仅限游戏,我放置的导航栏和按钮等其他功能正常)
  7. 我打开控制台,它说:
    • “未捕获的引用错误:未定义 UnityLoader
    • "Failed to load resource: the server responded with a status of 404 (Not Found)" 在 demo:15"

有什么想法吗?或者,如果您可以指导我学习如何将您的 Unity WebGL 游戏放入 Laravel 的教程,那就太好了。由于我试图搜索它,到目前为止我发现没有人将 Unity 放在他们的 Laravel 网站上。

--- 编辑:这是由 Unity WebGL 生成的 index.html 文件 ---

<!DOCTYPE html>
<html lang="en-us">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Unity WebGL Player | Projectile</title>
    <link rel="shortcut icon" href="TemplateData/favicon.ico">
    <link rel="stylesheet" href="TemplateData/style.css">
    <script src="TemplateData/UnityProgress.js"></script>  
    <script src="Build/UnityLoader.js"></script>
    <script>
      var gameInstance = UnityLoader.instantiate("gameContainer", "Build/OrangeCodeGame.json", {onProgress: UnityProgress});
    </script>
  </head>
  <body>
    <div class="webgl-content">
      <div id="gameContainer" style="width: 960px; height: 600px"></div>
      <div class="footer">
        <div class="webgl-logo"></div>
        <div class="fullscreen" onclick="gameInstance.SetFullscreen(1)"></div>
        <div class="title">Projectile</div>
      </div>
    </div>
  </body>
</html>

想通了:

当您使用 WebGL 构建 Unity 游戏时,Unity 将提供以下文件:

  • index.html
  • 构建(文件夹)
  • TemplateData(文件夹)

  1. 将index.html复制到resources/views文件夹中,并将"index.html"的扩展名改为"index.blade.php"
  2. 打开 Laravel 项目中的 public 文件夹,复制并粘贴 Build 和 TemplateData 文件夹。
  3. 转到 routes/web。php,添加将路由到 index.blade.php 的控制器。

    4.你可以用按钮或任何你喜欢的东西来测试它。

完成,现在可以正常使用了。您甚至可以将 Laravel 内容放在 index.blade.php 中,与您的导航栏或任何您喜欢的内容统一。

另外,认证会话也可以正常通过