接下來我們開始寫具體的邏輯,基本思路是這樣的:當有Actor進入觸發(fā)區(qū)域時,判斷是不是玩家,如果是玩家則執(zhí)行開門的動作;當有Actor退出觸發(fā)區(qū)域時,判斷是不是玩家,如果是則執(zhí)行關門的動作。
選擇Box Collision組件,在屬性中點擊“OnComponentBeginOverlap”和“OnComponentEndOverlap”兩個屬性后面的綠色加號,添加對應的碰撞事件,添加完成之后如下圖所示。
從OtherActor拉出一條線,轉化為ThirPersonCharacter類型,如果轉化成功,則執(zhí)行開門動作,因為此處開門是慢慢打開,所以我們需要借助Timeline(時間線)做緩動處理,來控制SM_Door組件的旋轉。為Timeline添加一條float track并在一秒之內值從0變化到1,最終效果可以參考下圖。
在Timeline播放的過程中我們需要借助Lerp設置SM_Door組件的旋轉,這樣當時間線播放的時候門就會按照我們設計的旋轉值慢慢變化,也就有了慢慢打開的效果。
此時我們可以將新創(chuàng)建的藍圖類從ContentBrowser面板中拖動到場景中,之后運行游戲可以發(fā)現(xiàn)當玩家靠近門時門會自動打開,如下圖所示。
但是目前存在一個問題,當玩家退出門所在的區(qū)域時,門仍然是打開的狀態(tài),并不會自動關閉,所以如果想讓門自動關閉需要修改一下藍圖中的邏輯,在玩家退出該區(qū)域時門會自動關閉。
至此我們已經(jīng)實現(xiàn)了第三人稱開門的基本邏輯,最終藍圖中的連線如下圖所示。
>>本文地址:http://uj2y2uok.com/zhuanye/2020/49268.html
聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?