2

我有一个统一的 webgl 项目和一个 asp.net mvc 项目。

我需要在视图中显示 webgl 内容。

我想到的第一件事就是简单地复制 unity 给我的 index.html 的内容并将其粘贴到 .cshtml 文件中并更改地址。但是当我这样做时,会弹出不正确的标题错误。

我是在做错事还是做错了事。我应该完全改变我的方法吗?

我还将这些文件扩展名添加到 web.config

<staticContent>
  <!-- Unity 5.x -->
  <remove fileExtension=".mem" />
  <mimeMap fileExtension=".mem" mimeType="application/octet-stream" />
  <remove fileExtension=".data" />
  <mimeMap fileExtension=".data" mimeType="application/octet-stream" />
  <remove fileExtension=".memgz" />
  <mimeMap fileExtension=".memgz" mimeType="application/octet-stream" />
  <remove fileExtension=".datagz" />
  <mimeMap fileExtension=".datagz" mimeType="application/octet-stream" />
  <remove fileExtension=".unity3dgz" />
  <mimeMap fileExtension=".unity3dgz" mimeType="application/octet-stream" />
  <remove fileExtension=".jsgz" />
  <mimeMap fileExtension=".jsgz" mimeType="application/x-javascript; charset=UTF-8" />
</staticContent>
4

1 回答 1

4

基本上,您将所有文件引用复制到您的视图,当然还有您的画布容器以及初始化它的代码。

添加所有是 css 样式文件的内容

@Styles.Render("~/webgl/TemplateData/style.css")

以及所有的 js 文件

@Scripts.Render("~/webgl/TemplateData/UnityProgress.js");

所以你会有类似的东西

@{
    ViewBag.Title = "Stage";
    @Styles.Render("~/webgl/TemplateData/style.css")
    @Scripts.Render("~/webgl/TemplateData/UnityProgress.js");
    @Scripts.Render("~/webgl/Build/UnityLoader.js");
}

<h2>Stage</h2>

<script>
    var gameInstance = UnityLoader.instantiate("gameContainer", "../webgl/Build/Builds.json", {onProgress: UnityProgress});
</script>

<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">Figurines</div>
    </div>
</div>

不要忘记将 unityweb mime 类型添加到 web.config

<system.webServer>
    <staticContent>
      <remove fileExtension=".unityweb" />
      <mimeMap fileExtension=".unityweb" mimeType="application/octet-stream" />
    </staticContent>
</system.webServer>
于 2017-09-27T12:14:28.050 回答