這里還是用藍圖實現(C++應該也可以實現,但是我沒試過)。首先需要創建一個界面:

簡單畫一個按鈕就行,不用寫邏輯,邏輯我們需要在別的地方寫。隨后創建一個actor:

內容如下:





這里用到一個popview的組件,簡單理解為一個UI界面就行,可以替換成任意的彈窗。注意上圖中有一個地方出現了“NOTE”字樣,說PopView變量已經是xxx類型的了,不需要進行轉換,但是實際上我們這里會把PopView當成一個檢測器,如果其內容為空說明還沒有創建彈窗,那么就創建彈窗並將新建的彈窗添加到視圖中去進行顯示。之所以添加這么個變量和相關的判斷邏輯就是因為之前沒有加上相關的變量與邏輯的時候發現,如果多次點擊actor所在的區域,盡管已經彈出彈窗了,但是Event EndInputTouch還是會響應觸碰事件,所以最終會創建多個彈窗,導致多個彈窗疊加在一起顯示,所以才需要這么個步驟來進行判斷,如果彈窗界面確實沒有添加到玩家的顯示中,那么才進行界面的創建並將創建好的窗口添加到玩家的視圖中。popview的內容分為兩個部分,一個藍圖一個UI,UI內容與綁定的邏輯:




PopView對應的藍圖的邏輯:

