如何在 asp.net mvc 视图中使用 unity3d webgl 内容?
how to use unity3d webgl content in a asp.net mvc view?
我有一个 unity webgl 项目和一个 asp.net mvc 项目。
我需要在视图中显示 webgl 内容。
我第一个想到的就是简单的复制
index.html 统一给了我并将其粘贴到 .cshtml 文件中并更改地址。但是当我这样做时,会弹出不正确的 header 错误。
我是做错了什么还是什么都错了。我应该完全改变我的方法吗?
我还将这些文件扩展名添加到 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>
基本上,您将所有文件引用复制到您的视图,当然还有您的 canvas 容器以及初始化它的代码。
添加 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>
我有一个 unity webgl 项目和一个 asp.net mvc 项目。
我需要在视图中显示 webgl 内容。
我第一个想到的就是简单的复制 index.html 统一给了我并将其粘贴到 .cshtml 文件中并更改地址。但是当我这样做时,会弹出不正确的 header 错误。
我是做错了什么还是什么都错了。我应该完全改变我的方法吗?
我还将这些文件扩展名添加到 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>
基本上,您将所有文件引用复制到您的视图,当然还有您的 canvas 容器以及初始化它的代码。
添加 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>