這麼做的原因
先說下爲啥要這麼做,首先我們要知道
在控件藍圖中無法很方便的像在關卡藍圖中一樣
在UE編輯器裏面選中 actor,就能創建對應actor的引用
這也導致了在控件藍圖中,無法很方便的設置對應actor 的屬性從而達到我們想要的效果
因爲你要先找到你想設置的actor,才能設置
在控件藍圖中如何找到我們想要的actor
上面說無法很方便的找到,其實也是有辦法的,如這樣
獲取類的所有actor -> Actor Class 選擇 SunSky,設置solar Time
自定義事件控制SunSky組件-案例
創建項目
我們先創建個項目,選擇建築
選擇空白模版
選擇 不帶初學者內容包,啓用光線追蹤,項目名爲 DIYEevent
初次創建可能爲有點慢,創建完成後,就會有個SunSky組件,選中Sunsky組件,其中細節面板的Solar time 屬性就是時間,通過控制這個可以實現一天時間的流逝,同時光照也會對應更新
創建立方體,查看陰影效果
我們拖一個立方體到場景中,就可以看到光照的陰影效果
關卡藍圖中創建自定義事件
取名爲 aaa
添加關卡藍圖自定義事件的輸入參數
選中自定義事件,在細節面板中,在輸入中,增加命爲 param 類型字符串的 輸入,並打印輸出,如下圖
這時候我們運行測試下,在控制檯輸入
ce aaa 111
可以看到我們自定義事件的參數打印
創建UI控件藍圖
在內容瀏覽器鼠標右擊,選擇控件藍圖
命名爲 Menu,如下
雙擊進入控件藍圖的編輯,在畫布中拖入滑條,並簡單設置一下滑條的最小值和最大值
將UI 控件顯示到視口
回到關卡藍圖,設置以下事件
運行之後,滑條就可以顯示了
滑條 值變更時 將值傳入關卡藍圖中的自定義事件
回到控件編輯,找到事件 -> 值變更時 點擊後面的 + 號
設置藍圖,如下
這時候我們運行看一下,可以看到每次拖動滑條,都會把值打印出來
這時候控件藍圖中的滑條值 就通過 自定義事件 傳入到了關卡藍圖中了
設置SunSky的 SolarTime 的值
在世界大綱中選中SunSky,回到關卡藍圖中創建一個SunSky 的引用
設置關卡藍圖如下
這時候就能通過更新滑條的值,更新SunSky 的solarTime的值從而更新光照