FlowCanvas官方文檔翻譯(一)


完整 API 文檔地址:FlowCanvas

1.Getting Started

1.1 The FlowScript Controller 流程腳本控制器

FlowCanvas的最重要的組件是FlowScriptController組件。 顧名思義,這個組件負責控制流程腳本,並且必須將其添加到您希望由流程腳本控制的游戲對象上。 雖然這不是強制性的,但它是最快速和最建議的方式快速開始。 一旦在游戲對象上添加了FlowScriptController組件,您將注意到添加了另一個名為“Blackboard”的組件。 這是你將創建變量的地方,但更多的這些變量將在后面解釋。

FlowScriptController需要分配一個FlowScript,或者,您可以單擊“創建新”按鈕來創建和分配一個。 將彈出一個選項,詢問您是否要創建“綁定”或“資產”圖形。

  • 綁定圖,綁定到游戲對象上的FlowScriptController附加。 因此,這允許您直接在flowscript的各個節點中擁有和分配場景對象引用。
  • 資產圖表是在項目中另存為.asset文件的圖表。 這樣做的好處是,如果你需要,它可以在任何數量的不同的FlowScriptController之間使用和分配,但缺點是,因為它是一個資產,你不能在流程腳本的節點中有場景對象引用。

在大多數情況下,創建綁定圖是建議的類型,但不要擔心太多,因為你可以在任何時候你想要的兩者之間進行轉換。

一旦您通過按鈕創建了流程腳本,編輯器將立即顯示。

1.2 Understanding the Flow 了解流程

可能是你需要了解FlowCanvas的最重要的方面,是如何通過連接從節點傳輸流和數據,以及為什么。 首先,我們將要解釋存在的兩種不同類型的端口。

Flow Ports 流程端口

流程端口是執行信號通過其逐個節點地行進並且“使事情發生”的端口。 流端口等效於相繼調用方法/函數,並且按順序,非常類似於在實際編碼中如何做。 流信號總是從左向右傳播,相當於在代碼中如何從上到下調用方法。 因此,將流端口連接到另一個輸入流端口,就像調用該端口。
在下面的示例中,一旦按下“Fire1”按鈕,事件節點將開始一個流信號。 一旦發生這種情況,將調用日志文本節點。

  • 流輸出只能有一個輸出連接(如果要拆分流,可以使用拆分節點)。
  • 流輸入可以有任意數量的輸入連接。
  • 流端口只能連接到其他流量端口。

Value Ports 值端口

值端口是通過其傳輸實際數據值,如數字,字符串,布爾,游戲對象和幾乎任何類型的數據。 值端口等效於在代碼中獲取值,並將此值作為參數提供給某個對象。 與Flow信號不同,這是以從右到左的向后方式完成的。 因此,價值端口大多數等價於get。
在下面的示例中,當如前所述調用日志文本時,“Text”參數將請求並獲取連接到它的值,因此控制台現在將記錄“hello!”。

  • 值輸出可以有任意數量的輸出連接。
  • 值輸入只能有一個傳入連接。
  • 值端口只能連接到相同或可分配類型的其他值端口。 什么可分配類型意味着,將在后面更詳細地解釋。

1.3 Adding Nodes 添加節點

有很多方法可以將一個節點添加到流程圖中。 每種方式在下面詳細描述。

Context Menu & Browser 上下文菜單和瀏覽器

添加新節點的最直接的方法是通過右鍵單擊畫布以顯示上下文菜單,或者通過在編輯器中點擊“空格”鍵來調出完整的瀏覽器。 在這兩種情況下,將彈出包含節點分類的菜單,但在完整瀏覽器的情況下,還會有一個搜索欄,圖標以及使用箭頭鍵導航的功能。 隨意使用。

Drag & Drop Objects 拖拽物體

另一種添加節點的方法是將任何對象引用從場景或項目拖放到flowscript畫布中。 根據拖動的內容,將彈出不同的上下文菜單。 此菜單將允許您將對象添加為變量節點,或者甚至調用,獲取/設置其方法或屬性之一。 在下面的示例中,一個Camera組件被拖動,但你可以真正拖放任何東西。

Drag & Drop Port Connections 拖放端口連接

等另一種方式添加一個新的節點是將一個端口連接拖入空畫布。 這將顯示一個上下文相關菜單,其中包含所拖動端口類型的相關節點,並自動將兩個節點連接在一起,如下所示。 這是一個時間保護程序,它允許您探索可以做什么拖動端口類型,雖然它不包括可以做的一切。

Drag & Drop Variables 拖放變量

添加新節點(特別是get和set變量節點)的最終方法是通過在畫布中拖放變量。

 

1.4. Connecting Nodes 連接節點

將節點端口連接在一起是簡單和直接,甚至有一些額外的功能,以幫助你。 將兩個端口連接在一起的最基本的方法是單擊將一個端口拖放到另一個端口。 這可以以向前以及向后方式(意味着將輸出連接到輸入或輸入到輸出)來完成。

ConnectDirect

或者,您也可以單擊將端口拖放到整個目標節點。 在這種情況下,將彈出一個敏感的上下文菜單,列出拖拽端口可以連接的可能端口。 這有助於加快您的工作流程,而不是試圖定位到一個端口的正確位置。 這也可以以向后方式的向前進行。

ConnectSensitive

刪除連接可以通過右鍵單擊端口來完成。 如果端口有多個連接,則所有端口都將被刪除。
如果將端口連接拖動到空畫布中,則類型敏感上下文菜單將彈出與拖動的端口類型相關的可用節點。 選擇該菜單中的節點,將自動添加並連接它。

ConnectingSensitive

1.5. Creating Groups 創建組

畫布組是一個編輯器功能,允許將一組節點組織在一起,用於組織和注釋原因。
要創建畫布組,只需在畫布中單擊並拖動,就像進行多選時,然后在釋放鼠標按鈕之前,按住Control鍵。

CreateGroup

然后您可以右鍵單擊標題重命名組,刪除它或選擇所有的節點里面。 如果願意,您可以在其他畫布組中嵌套畫布組。
如果要移動畫布組而不移動節點以進行重組,則可以在拖動畫布組的同時按住shift鍵。

1.6. The "Self" Parameter    “Self”參數

在FlowCanvas中,術語“Self”表示為其執行流程腳本的流程腳本的所有者。 或者換句話說,FlowScriptController附加到的游戲對象。 術語“Self”通常可以在節點的實例端口上看到,如果該端口是GameObject類型或任何派生組件。
在下面的示例中,Animator.SetFloat節點的Animator參數被標記為“Self”,因為它是將調用Set Float的實例。 如果未連接和未分配,該參數將在運行時通過從FlowScriptController附加的游戲對象獲取Animator組件來解析。 如果沒有,當然,參數將解析為null。

SelfParameter1

另一個可以找到“自我”術語的地方是在特定的事件節點。 在下面的示例中,默認情況下將針對附加到“自我”游戲對象的對撞機檢查事件,但如果需要,您可以自由分配或鏈接另一個對撞機。 (關於事件和鏈接變量的更多信息將在后面解釋)。

SelfParameter2

1.7. Visual Debugging 可視化調試

FlowCanvas附帶了一個非常信息的視覺調試器。 在運行時,您可以在編輯器窗口中觀察所有流量信號和數據傳輸。 連接將以黃色相應閃爍,並且值端口連接將顯示當前通過它和目標節點傳輸的值!

VisualDebugFlow

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM