UE 如何在控件藍圖裏調用關卡藍圖裏的自定義事件

這麼做的原因

先說下爲啥要這麼做,首先我們要知道

在控件藍圖中無法很方便的像在關卡藍圖中一樣

在UE編輯器裏面選中 actor,就能創建對應actor的引用

這也導致了在控件藍圖中,無法很方便的設置對應actor 的屬性從而達到我們想要的效果

因爲你要先找到你想設置的actor,才能設置

在控件藍圖中如何找到我們想要的actor

上面說無法很方便的找到,其實也是有辦法的,如這樣

獲取類的所有actor -> Actor Class 選擇 SunSky,設置solar Time

image-20230913173237368

自定義事件控制SunSky組件-案例

創建項目

我們先創建個項目,選擇建築

image-20230914091637876

選擇空白模版

image-20230914091730442

選擇 不帶初學者內容包,啓用光線追蹤,項目名爲 DIYEevent

image-20230914091909802

初次創建可能爲有點慢,創建完成後,就會有個SunSky組件,選中Sunsky組件,其中細節面板的Solar time 屬性就是時間,通過控制這個可以實現一天時間的流逝,同時光照也會對應更新

image-20230914092048791

創建立方體,查看陰影效果

我們拖一個立方體到場景中,就可以看到光照的陰影效果

image-20230914092432597

關卡藍圖中創建自定義事件

image-20230914092852158

取名爲 aaa

image-20230914092932617

添加關卡藍圖自定義事件的輸入參數

選中自定義事件,在細節面板中,在輸入中,增加命爲 param 類型字符串的 輸入,並打印輸出,如下圖

image-20230914103102265

這時候我們運行測試下,在控制檯輸入

ce aaa 111

可以看到我們自定義事件的參數打印

image-20230914103359417

創建UI控件藍圖

在內容瀏覽器鼠標右擊,選擇控件藍圖

image-20230914093753891

命名爲 Menu,如下

image-20230914093900724

雙擊進入控件藍圖的編輯,在畫布中拖入滑條,並簡單設置一下滑條的最小值和最大值

image-20230914094129893

將UI 控件顯示到視口

回到關卡藍圖,設置以下事件

image-20230914094546236

運行之後,滑條就可以顯示了

image-20230914094622389

滑條 值變更時 將值傳入關卡藍圖中的自定義事件

回到控件編輯,找到事件 -> 值變更時 點擊後面的 + 號

image-20230914094918769

設置藍圖,如下

image-20230914103620359

這時候我們運行看一下,可以看到每次拖動滑條,都會把值打印出來

image-20230914103722831

這時候控件藍圖中的滑條值 就通過 自定義事件 傳入到了關卡藍圖中了

設置SunSky的 SolarTime 的值

在世界大綱中選中SunSky,回到關卡藍圖中創建一個SunSky 的引用

image-20230914110722854

設置關卡藍圖如下

image-20230914110818241

這時候就能通過更新滑條的值,更新SunSky 的solarTime的值從而更新光照

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章