本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
內容物件
預覽版的新Sumerian 發動機 API
您可以使用上下文對象ctx
在指令碼存在時間內存放您的指令碼資料。上下文創建於setup()
,並在上清除cleanup()
,並傳遞到所有腳本函數中。它具有下列屬性:
Properties
-
entity
(Entity
) — 指令碼連接的實體。 -
entityData
(Object
) — 在實體上的所有指令碼之間分享的資料物件。 -
activeCameraEntity
(Entity
) — 目前使用中的相機實體。 -
domElement
(HTMLCanvasElement
() WebGL 帆布元素。 -
playTime
(number
) — 場景開始後經過的時間。 -
transitions
(Object
)-用於發出成功或失敗訊號的轉換函數執行指令碼上的動作狀態機器。 -
viewportHeight
(number
) — 畫布的高度。 -
viewportWidth
(number
) — 畫布的寬度。 -
world
(World
)-world 物件。 -
worldData
(Object
) — 在 world 中的所有指令碼之間分享的資料物件。
上的部分屬性ctx
在指令碼之間分享。entityData
由實體上的所有指令碼共用且worldData
由所有指令碼共用。所有實體最初皆為空內容,而且可用來存放任何類型的資料
例如,如果我們要定義稱為加速的屬性,可以提供三種層級:
// Only accessible to the script that defined the property
ctx.acceleration=9.82;
// Accessible to all scripts on the entity
ctx.entityData.acceleration=9.82;
// Accessible to all scripts
ctx.worldData.acceleration=9.82;
內建內容屬性還包含一些便利功能。例如,world
物件可讓您根據標籤來搜尋實體。您可以使用帶有 ctx.world.by.tag
的特定標籤來取得所有實體:
var entities = ctx.world.by.tag('myTag
');