跳轉到主要內容
當 CloudScript 處理常式是從 PlayStream 動作啟動時,該處理常式可以存取更多關於其執行原因的資料 (也就是內容),您可以使用這些資料來推動伺服器端邏輯。 本教學課程將逐步說明內容中有哪些可用資料,以及如何在 CloudScript 處理常式中加以運用。

CloudScript 基本概念

充分發揮 CloudScript 效用的關鍵,在於了解如何使用您可用的輸入,也就是處理常式的 args 和 context。 例如,以下是入門 CloudScript 中的 helloWorld 範例,在所有新建立的遊戲中都會載入為 Revision 1 (也可在我們的 GitHub 上取得,如下所示)。
此範例示範透過 ExecuteCloudScript 從用戶端呼叫 CloudScript 的常見使用案例。它會檢查以索引鍵 inputValue 傳入的引數,並將該索引鍵的值作為執行之偵錯記錄資訊所傳回文字的一部分。

context 輸入參數

不過,也可以透過規則 (Automation->Rules)、區段進入/離開動作 (Players->Segments) 或工作服務 (Automation->Tasks),因應 PlayStream 中的事件而呼叫 CloudScript。 當您這樣做時,傳入函式的 context 會提供您採取適當動作所需的所有資訊。 若要了解 PlayStream 事件運作方式的基本概念,請參閱我們的部落格文章 Introducing PlayStream;如需 PlayStream 事件類型及其屬性的清單,請參閱我們的 PlayFab API 參考。 若要檢視此動作,請查看同一個範例 CloudScript 中的 handlePlayStreamEventAndProfile 處理常式。
在由 PlayStream 觸發的 CloudScript 呼叫中,context 包含 3 個元素,可用來推動您以伺服器為權威之處理常式的邏輯。
  1. 首先是 playStreamEvent,您可以在上方的範例程式碼中看到它。playStreamEvent 以 JSON 物件的形式包含觸發處理常式的完整事件,其中包含您在 PlayStream 事件文件中看到的所有參數。例如,如果您在遊戲中設定了一個規則,在任何 player_logged_in event 上呼叫 handlePlayStreamEventAndProfile,則 playStreamEvent.EventName 會是 player_logged_in,依此類推 (這是該事件的完整參數集)。
  2. 接下來是 playerProfile,也顯示在先前的範例中。其中包含觸發事件之玩家的相關資訊。您可以在這裡找到設定檔參數的所有詳細資料,除此之外,它還包含玩家在您遊戲中的完整統計資料集,以及您指派給玩家的任何自訂標籤,讓您可以使用這些資料進行豐富的決策。
  3. context 的最後一個元素是 triggeredByTask。前兩個元素是在使用規則和區段進入/離開觸發程序時設定的,而 triggeredByTask 則不同,它僅適用於處理常式因工作 (無論是手動或依計時器) 而執行的情況。它只包含兩個參數:
  • Name:您在建立工作時為其指定的唯一名稱。
  • ID:PlayFab 為您的工作自動產生的唯一識別碼。
對於針對使用者區段執行的工作,您也會有 playerProfile,但不會有 playStreamEvent。 而對於只是針對您的遊戲執行、沒有任何區段的工作,則不會有 playerProfile,因為其目的是執行更一般性的作業,例如為活動設定某些遊戲資料。 因此,name 是您會想在處理常式的程式碼流程中使用的元素,用來判斷要採取的適當動作。

PlayStream 加上 CloudScript

在許多方面,由 PlayStream 動作觸發的 CloudScript 處理常式,比直接透過呼叫 ExecuteCloudScript 觸發的處理常式具有更多潛在功能,因為 context 提供了豐富的資料集。 這讓您能夠在發行後以更多邏輯更新處理常式,運用您原本未預期到的事件或玩家設定檔元素,而不需要以任何方式更新用戶端程式碼。 此外,我們將在 PlayFab 服務的未來更新中持續新增玩家設定檔的內容,為伺服器端邏輯提供更多選項。
最後修改於 2026年10月6日