關於Unity 如何與Blazor Server結合 一、介紹 最近工作中有Unity與Blazor Server結合的需求,在網上找了一圈,發現這方面的資料比較少,特此寫下這篇記錄一下自己的實現過程,希望可以幫到有需要的朋友。(下方多圖預警) OS Version : windows 11 Uni ...
關於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的結合,這篇博客是本人寫的第一篇博客,如有不對的地方,請大家指教。