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