Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

HTML5 shell 類參考

為 Web 匯出的專案向 JavaScript 環境暴露了 Engine() 類,從而可以更好地控制引擎的啟動過程。

這個API是以非同步的方式建立的, 需要對 Promises 的基本理解.

關於 Godot Engine

Engine 類提供了在Web上載入和啟動匯出專案的方法. 對於預設的匯出設定, 這已經是匯出的HTML頁面的一部分. 要瞭解 Engine 類的實際使用, 請參見 自訂Web匯出的HTML 頁面 .

靜態方法

Promise

load ( string basePath )

void

unload ( )

boolean

isWebGLAvailable ( [ number majorVersion=1 ] )

實例方法

Promise

init ( [ string basePath ] )

Promise

preloadFile ( string|ArrayBuffer file [, string path ] )

Promise

start ( EngineConfig override )

Promise

startGame ( EngineConfig override )

void

copyToFS ( string path, ArrayBuffer buffer )

void

requestQuit ( )

class Engine(initConfig)

用給定的配置建立一個新的引擎實例.

引數

靜態形體。

Engine.load(basePath)

從指定的基本路徑載入引擎.

引數
  • basePath (string()) -- 引擎載入的底層路徑.

回傳

一個一旦載入引擎就會解析的Promise.

回傳型別

Promise

Engine.unload()

解除安裝引擎以釋放記憶體.

接著會自動使用樣板建置,不需要進一步設定。

Engine.isWebGLAvailable([majorVersion=1])

檢查 WebGL 是否可用.(可選)指定要檢查的特定 WebGL 版本.

引數
  • majorVersion (number()) -- 要檢查的主要WebGL版本.

回傳

如果給定的WebGL的主要版本是可用的.

回傳型別

boolean

使用泛型方法

Engine.prototype.init([basePath])

初始化引擎實例. 如果引擎還沒有被載入, 可以選擇將基本路徑傳遞給引擎來載入它. 參見 Engine.load() .

引數
  • basePath (string()) -- 引擎載入的底層路徑.

回傳

一旦引擎被載入和初始化, 一個 Promise 就會被解析.

回傳型別

Promise

Engine.prototype.preloadFile(file[, path])

載入一個檔, 這樣一旦運作, 它就可以在實例的檔案系統中使用. 必須在啟動實例 之前 呼叫.

如果沒有提供, path 是從載入檔的URL中匯出的.

引數
  • file (string|ArrayBuffer()) -- 要預裝的檔, 如果是一個 string , 檔將從該路徑載入. 如果是一個 ArrayBuffer 或一個視圖, 該緩衝區將被用作檔的內容.

  • path (string()) -- 用於存取檔的路徑. 如果 file 不是一個字串, 則為必需的.

回傳

一個一旦檔被載入就會解析的Promise.

回傳型別

Promise

Engine.prototype.start(override)

使用給定的覆蓋配置(如果有的話)啟動引擎實例. startGame 可以在典型情況下代替使用.

如果實例沒有被初始化, 它將初始化它. 對於手動初始化, 請參閱 init . 引擎必須事先載入.

如果在頁面上找不到畫布, 或者沒有在配置中指定, 則失敗.

引數
回傳

引擎啟動後解析的Promise.

回傳型別

Promise

Engine.prototype.startGame(override)

使用給定的配置覆蓋(如果有的話)啟動遊戲實例.

如果實例沒有被初始化, 將初始化它. 對於手動初始化, 見 init .

如果未載入引擎, 則將載入引擎, 並預載入主pck.

該方法將初始配置(或重寫)時同時設定 executablemainPack 屬性(通常由編輯器在匯出過程中完成).

引數
回傳

一旦遊戲開始就會解析Promise.

回傳型別

Promise

Engine.prototype.copyToFS(path, buffer)

在指定的 path 上建立一個檔, 在實例的檔案系統中將通過該檔建立為 buffer .

引數
  • path (string()) -- 將建立檔的位置.

  • buffer (ArrayBuffer()) -- 檔案的絕對路徑

Engine.prototype.requestQuit()

參照目前的類別實體。

這就類似使用者在視窗管理器中按下關閉按鈕, 如果引擎已經當機, 或者卡在迴圈中, 就不會有任何效果.

程式碼樣式設定

用於根據 Godot 匯出選項配置引擎實例的物件, 如果需要, 可重寫自訂 HTML 範本中的物件.

屬性

type

名稱

boolean

unloadAfterInit

HTMLCanvasElement

canvas

字串

executable

字串

mainPack

字串

locale

數字

canvasResizePolicy

字串

args

函式

onExecute

函式

onExit

函式

onProgress

函式

onPrint

函式

onPrintError

EngineConfig

引擎配置物件. 這只是一個型別, 像建立一個普通物件一樣建立它, 例如:

const MyConfig = { executable: 'godot', unloadAfterInit: false }

描述

unloadAfterInit

在實例被初始化後, 是否自動解除安裝引擎.

Type

boolean

true

canvas

要使用的 HTML DOM Canvas 物件。

預設情況下, 如果沒有指定任何元素, 將使用文件中的第一個畫布元素.

Type

HTMLCanvasElement

null

executable

WASM 檔的名稱,不含副檔名。(由 Godot 編輯器的匯出過程設定)。

Type

字串

""

mainPack

要載入的遊戲pck的更換名稱. 否則使用可執行檔名.

Type

字串

null

locale

指定語言程式碼,為遊戲選擇合適的當地語系化。

如果沒有指定,將使用瀏覽器的區域設定。請參閱完整的:ref:`支援的區域設定 <doc_locales>`列表。

Type

字串

null

canvasResizePolicy

畫布大小調整策略決定 Godot 應當如何調整畫布的大小。

0 意味著 Godot 不做任何大小調整。如果您想通過範本中的 javascript 程式碼來控制畫布的大小,這將很有用。

1 意味著 Godot 在啟動時,以及通過引擎功能改變視窗大小時,會調整畫布的大小。

2 意味著 Godot 將調整畫布的大小以配對整個瀏覽器視窗。

Type

數字

2

args

解析自定命令行參數。

更多有關命令行參數的資訊,請參考 命令行教學

注意startGame 將始終新增 --main-pack 參數。

Type

字串

int[]

onExecute(path, args)

用於處理 Godot 的 OS.execute 呼叫的回呼函式。

例如在Web Editor範本中使用, 用於在專案管理器和編輯器之間切換, 以及運作遊戲.

引數
  • path (string()) -- Godot想要執行的路徑.

  • args (Array.) -- 要執行的 "command" 的參數.

onExit(status_code)

當Godot實例退出時, 用於通知的回呼函式.

注意:如果引擎當機或無回應,該函式不會被呼叫。

引數
  • status_code (number()) -- Godot 退出時返回的狀態碼。

onProgress(current, total)

回呼函式,用於顯示下載進度。

該函式在下載檔案時每影格被呼叫一次, 所以沒有必要使用 requestAnimationFrame() .

如果回呼函式接收到的位元組總數為0, 這意味著無法計算. 可能的原因包括:

  • 檔隨伺服器端分塊壓縮一起提供

  • 檔在Chromium上通過伺服器端壓縮提供

  • 並非所有檔下載都已開始(通常在沒有多執行緒的伺服器上)

引數
  • current (number()) -- 到目前為止, 已下載的位元組數.

  • total (number()) -- 要下載的總位元組數.

onPrint([...var_args])

用於處理標準輸出流的回呼函式. 這個方法通常應該只在除錯頁面使用.

預設情況下,使用的是 console.log()

引數
  • var_args (*()) -- 將要輸出的可變數量的參數.

onPrintError([...var_args])

用於處理標準錯誤流的回呼函式. 這個方法通常應該只在除錯頁面使用.

預設情況下,使用的是 console.error()

引數
  • var_args (*()) -- 將要輸出的可變數量的參數.