关于Unity 如何与Blazor Server结合

一、介绍

最近工作中有`Unity`与`Blazor Server`结合的需求,在网上找了一圈,发现这方面的资料比较少,特此写下这篇记录一下自己的实现过程,希望可以帮到有需要的朋友。(下方多图预警)

OS Version : windows 11

Unity Version: 2021.3.23f1c1

Blazor Server : net 7.0

二、实现步骤

第一步 准备Unity项目

创建一个Unity 项目

​ 然后得到下面的Unity项目

第二步 Unity项目发布设置

​ 点击Unity 编辑器顶部菜单栏 文件 > 生成设置

​ 点击选择< WebGL >点击对话框右下角<切换平台> , 并等待平台切换完成

切换完成状态如下图,可以看到有黄色字体警告提示  **为了生成播放器,请转到播放器设置中解决“颜色空间”与当前设置之间的不兼容问题**

点击上图对话框左下角的**<玩家设置>**按钮来到设置界面,进入**<玩家>**菜单,选择**< WebGL >**栏,展开**<其他设置>** , 看到**<渲染>** 下的**<颜色空间>**

​ 将<颜色空间>线性改成伽马 ,并等待切换成功,做完这一切后收起 <其他设置>

​ 展开<发布设置>项 ,勾选解压缩回退 ,勾选之后关闭设置对话框, 到此 , 发布设置设置完成

第三步 发布Unity 项目 为 WebGL

​ 做完上一步发布的前期设置之后,接下来就可以开始发布Unity 项目啦,点击 Build Settings 对话框右下角的<生成>按钮

​ 点击<生成>按钮之后会弹出下列对话框让你选择一个发布的路径

​ 我本人是习惯于在Unity的项目根目录下创建一个Build 文件夹作为生成路径,读者可以按照个人习惯放置在其他路径,创建完Build文件夹之后,选择它作为发布路径,然后等待生成完成即可

​ 生成成功后的Build 文件夹内容如下,至此,生成步骤完成

第四步 Blazor Server 准备

​ 创建一个net7.0 的 Blazor Server项目

​ 在Program.cs中进行配置,代码如下

using BlazorApp6.Data;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web; var builder = WebApplication.CreateBuilder(args); // Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>(); var app = builder.Build(); // Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
} //------------------将Unity作为静态文件引入------------------------------------------
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRootPath, "BlazorServerTest")),
ServeUnknownFileTypes = true,
RequestPath = "/unity"
});
//-----------------------------------------------------------------------------------
app.UseRouting(); app.MapBlazorHub();
app.MapFallbackToPage("/_Host"); app.Run();

​ 做完如上配置之后,将刚刚在第三步中发布的Build文件夹拷贝到Blazor Server的项目根目录下,并修改目录名称为 BlazorServerTest,做完这步之后至此第四步完成

第五步 最终效果

​ 做完上述四个步骤之后,启动Blazor Server项目,在地址栏输入 http://localhost:{port}/unity/index.html 即可看到Unity画面

三、总结

​ 本文通过将Unity 生成成WebGL,并通过静态文件的方式引入了Blazor Server 当中,完成了Blazor Server和Unity的结合,这篇博客是本人写的第一篇博客,如有不对的地方,请大家指教。

关于Unity 如何与Blazor Server结合的更多相关文章

  1. 使用Blazor Server 线路处理程序 (circuit handler)跟踪打开的SignalR连接

    Blazor服务器允许定义线路处理程序(circuit handler)代码,该处理程序(handler)允许在更改用户线路状态时运行此代码. 线路处理程序(circuit handler)是通过从C ...

  2. [Asp.Net Core] 为什么选择 Blazor Server Side (一) 快速实现图片验证码

    关于Blazor 由于在国内, Blazor一点都不普及, 建议读者翻看我之前写的随笔, 了解Blazor Server Side的特点. 在一段时间内, 我会写一些解说分析型的 "为什么选 ...

  3. [Asp.Net Core] 关于 Blazor Server Side 的一些杂项, 感想

    在2016年, 本人就开始了一个内部项目, 其特点就是用C#构建DOM树, 然后把DOM同步到浏览器中显示. 并且在一些小工程中使用. 3年下来, 效果很不错, 但因为是使用C#来构建控件树, 在没有 ...

  4. [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作客户端浏览器软件

    前言 大家用过微信PC端吧? 这是用浏览器做的. 用过Visual Studio Code吧? 也是用浏览器做的. 听说, 暴雪客户端也包含浏览器核心?? 在客户端启动一个浏览器, 并不是什么难事了. ...

  5. 开源 一套 Blazor Server 端精致套件

    Blazor 作为一种 Web 开发的新技术已经发展有一段时间了,有些人标称 无 JS 无 TS,我觉得有点误导新人的意味,也有人文章大肆宣传 Blazor 是 JavaScript 的终结者,是为了 ...

  6. ASP.NET Core Blazor 初探之 Blazor Server

    上周初步对Blazor WebAssembly进行了初步的探索(ASP.NET Core Blazor 初探之 Blazor WebAssembly).这次来看看Blazor Server该怎么玩. ...

  7. [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作带浏览器核心的客户端软件 (二) 可运行版本

    前言 大概3个星期之前立项, 要做一个 CEF+Blazor+WinForms 三合一到同一个进程的客户端模板. 这个东西在五一的时候做出了原型, 然后慢慢修正, 在5天之前就上传到github了. ...

  8. Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端

    距离上次提出 [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作带浏览器核心的客户端软件 的想法后, 差不多2个星期了. 这个玩意也做了一半, 自用是没 ...

  9. [从源码学设计]蚂蚁金服SOFARegistry 之 如何与Meta Server交互

    [从源码学设计]蚂蚁金服SOFARegistry 之 如何与Meta Server交互 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 如何与Meta Server交互 0x00 摘要 0 ...

  10. 在Blazor Server 项目中使用 EF Core Sqlite

    按照教程创建了一个 Blazor Server 项目 教程地址: https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/build-a-blaz ...

随机推荐

  1. 海量数据运维要给力,GaussDB(for Cassandra)来助力

    摘要:应用运维管理平台(AOM)和Cassandra是两个不可分割的组成部分,它们共同构成了一个高效的解决方案,可以帮助企业在应用运维业务上取得巨大的优势.在这篇文章中,我们将介绍AOM和Cassan ...

  2. shell学习总结

    shell教程 第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件), 新建一个文件 test.sh,扩展名为 sh(sh代表shell) #!/bin/bash echo ...

  3. 开源 API 网关-访问策略(二)

    在上篇文章API网关:开源 API 网关-访问策略(一) 中,我们简单演示了如何在IP维度中对请求路径设置黑白名单,以此来限制客户端请求的权限和范围. 此外,Apinto网关为客户端提供了一种统一的. ...

  4. Redis系列17:聊聊布隆过滤器(实践篇)

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...

  5. 5 大数据实战-hive实战分析

    1 内部表 Show databses; Use hive_data; 1.1 创建内部表 CREATE TABLE SOGOUQ2(DT STRING,WEBSESSION STRING,WORD ...

  6. springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

    目录 一.继承类 二.手动添加Get方法 三.@JsonProperty 四.spring-boot json(jackson)属性命名策略 开发过程中发现查询返回的数据出现自定义的JavaBean的 ...

  7. Educational Codeforces Round 150 (Rated for Div. 2) A-E

    比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...

  8. [NOIP2011 提高组] 聪明的质监员【题解】

    题目 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 \(n\) 个矿石,从 \(1\) 到 \(n\) 逐一编号,每个矿石都有自己的重量 \(w_i\) 以及价值 \(v_i\) ...

  9. 在 Arch 配置 i3-wm 终端模拟器 xterm

    在 Arch 配置 i3-wm 终端模拟器 xterm 关于怎么在 Arch 安装 i3-wm 可以查看上一篇文章 https://www.cnblogs.com/shadow-/p/17572589 ...

  10. FPGA移位加三法

    介绍 BCD码 BCD码的英文全称是Binary-Coded Decimal‎,简称BCD,按字面解释是二进制十进制代码,是一种二进制的数字编码形式. 常见的BCD码有8421BCD码,2421BCD ...