Scene Component是藍圖類中一個不怎么常用的分類(特別是對於新手而言),主要是其實現的功能可以在Actor類中用相同的方法實現,使其作用顯得有點多余。
筆者在使用過這個類之后發現其作用更相當於一個接口,可以被其他藍圖類調用,且操作方法簡單,實現后效果明顯,在這里介紹一個簡單的應用便於讀者理解和使用這個藍圖類。
准備工作
首先是創建一個Scene Component藍圖類,命名為HoverComponent。
接下來是編寫藍圖邏輯之前的工作:創建兩個Float變量,命名為TraceLength和HoverForce,前者用於調整物體浮動時的幅度,后者表示物體在浮動時受到的壓力。TraceLength初始值設為150,可將該變量設為公共變量,便於在游戲中進行實時更改;HoverForce初始值設為500000。
事件調度
上述節點實現了Component的初始值設置和模擬物理效果設置。
然后調用Event Tick事件,在游戲的每一幀進行射線檢測,檢測的方向為物體的Z軸方向,幅度則為之前設置的TraceLength
檢測的結果暴露出來后將法相方向碰撞矢量和位置矢量進過簡單的運算后得到物體浮動力矢量,添加到Component上
最后設置Component的線性減震和角度減震,這樣一個簡單的物體浮動效果藍圖就制作完成了。
實際測試
在關卡中創建一個Cube或者Sphere靜態物體組件,選中后在Detail面板中添加上文中制作完成的HoverComponent,將物體的移動屬性改為Movable,將Cube或Sphere放置到場景中,運行關卡,進行測試,可以在Default中更改TraceLength的值查看效果
筆者的測試結果如下圖所示