Godot
本頁譯自英文。如兩者有出入,以英文頁面為準。 閱讀英文頁面
Godot 提供兩種語言,Lingara 為每一種都準備了套件。GDScript 遊戲使用 Lingara 外掛程式。Godot C# 遊戲使用 Lingara.Embed,也就是 Unity 遊戲所用的同一個 NuGet 套件。在一個專案中只使用其中之一,絕不同時使用兩者。下方的分頁分別示範了兩者。
安裝
GDScript。 從 Godot Asset Library 安裝 Lingara 外掛程式,然後在「專案設定」的「外掛程式」中啟用它。啟用後會新增一個名為 Lingara 的自動載入,每個場景都可以透過 /root/Lingara 存取它。
C#。 把 Lingara.Embed 以套件參考的方式加入你的專案。下方的範例節點 LingaraEmbedNode 不屬於該套件:把它的原始碼加入你的專案,並把它放進一個場景中。
從你的伺服器取得權杖
兩個套件都不持有密鑰。當核心需要權杖時,會向你自己的伺服器要求,伺服器用伺服器套件核發一個權杖,並回傳權杖及其到期時間。
使用外掛程式時,在「專案設定」中設定你的伺服器的權杖路由,Lingara 會在自己的執行緒上呼叫它。如果該路由需要玩家的工作階段,請改為在執行時設定,因為專案設定會隨你的匯出一起發布。或者連接 token_needed,自己回應每一個要求。使用 C# 時,每當用戶端要求權杖,範例節點都會向你的權杖路由傳送 POST 要求。無論哪種方式,都用 token_unavailable 或 TokenUnavailable 回報失敗,讓正在等待的呼叫立即失敗。
每個畫格處理事件
核心在自己的執行緒上執行網路 I/O。外掛程式的自動載入每個畫格清空一次佇列,並為每個事件發出一個訊號,所以你只需連接遊戲需要的訊號,不必自己清空任何東西。C# 節點在 _process 中清空佇列,每個畫格最多 256 個事件,並把每個事件重新以 Godot 訊號發出。
同樣的訊號也承載串流的 NPC 回覆(見 NPC 對話)和練習更新(見練習結果)。
<PackageReference Include="Lingara.Embed" Version="0.1.0-alpha.6" />