使用Laravel框架托管Unity WebGL游戏

6
我该如何将在WebGL中构建的Unity游戏放入Laravel中呢?
顺便说一下,使用Unity WebGL构建时会提供这些文件夹: - Build(文件夹) - TemplateData(文件夹) - 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. 我打开控制台,它说:
- "未捕获的ReferenceError:UnityLoader未定义" - "无法加载资源:服务器响应状态为404(未找到)" 在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>

请展示 index.html 的源代码。 - user2094178
我已经更新了,请帮忙。仍然没有得到解决方案。 - Nasrul Arif
请确保路径正确:<script src="Build/UnityLoader.js"></script> - Voyowsky
我已经更改了TemplateBuild和Build的路径,它可以正常工作。全屏按钮和游戏名称也显示出来了。甚至Laravel身份验证能够传递到Unity页面。但是现在我面临这个问题:在此页面上运行Unity内容时发生错误。请查看您的浏览器JavaScript控制台以获取更多信息。错误为: SyntaxError:JSON.parse:JSON数据的第1行第1列有意外字符。 - Nasrul Arif
1个回答

7

已经搞定了:

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

  • index.html
  • Build (文件夹)
  • TemplateData (文件夹)

  1. 将index.html复制到resources/views文件夹中,并将“index.html”的扩展名更改为“index.blade.php”
  2. 在Laravel项目的public文件夹中打开,复制并粘贴构建和TemplateData文件夹。
  3. 进入routes/web.php,添加控制器以路由到index.blade.php。

    4. 您可以使用按钮或任何您喜欢的内容进行测试。

完成,现在它将正常工作。 您甚至可以将Laravel内容放置在unity的index.blade.php中,包括导航栏或任何您喜欢的内容。

此外,身份验证会话也可以正常传递。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接