物件和資源存留期
Azure 遠端轉譯區分為兩種類型:物件和資源。
物件存留期
物件可視為是使用者可以自行決定建立、修改和終結的項目。 物件可自由複製,而且每個執行個體都會隨時間變化。 因此,實體和元件都是物件。
物件的存留期完全由使用者控制。 不過,其與用戶端表示的存留期無關。 Entity
和 Component
之類的類別具有 Destroy
函式,必須呼叫此函式,才能將遠端轉譯主機上的物件解除配置。 此外,Entity.Destroy()
也會終結實體、其子系,以及該階層中的所有元件。
資源存留期
資源是完全由遠端轉譯主機管理其存留期的項目。 資源是在內部計數的參考。 不再受到參考時,便會解除配置。
大部分資源只能間接建立,方法通常是透過檔案載入資源。 相同檔案載入多次時,Azure 遠端轉譯會傳回相同參考,而不會再次載入資料。
有許多資源是不可變的,例如網格和紋理。 不過,有些資源是可變的,例如材質。 由於資源通常會共用,因此修改資源可能會影響多個物件。 例如,變更材質的色彩將會變更所有使用網格、進而參考該材質的物件色彩。
內建資源
Azure 遠端轉譯包含一些內建資源,藉由在呼叫 RenderingSession.Connection.LoadXYZAsync()
的期間,在這些資源各自的識別碼前面加上 builtin://
,即可載入這些資源。 可用的內建資源會列在每個個別功能的文件中。 例如,天空章節會列出內建的天空紋理。
一般存留期
所有物件和資源的存留期都會與連線繫結。 中斷連線時,一切都會遭到捨棄。 重新連線到相同工作階段時,場景圖表會是空的,所有資源也都遭到清除。
實際上,在中斷連線後將相同資源載入到工作階段,速度通常會比第一次更快。 會有這種情況是因為,大部分資源在第一次時都必須從 Azure 儲存體下載,但第二次時就不需要,因此可以節省相當多的時間。