[UE4藍圖教程]藍圖入門之藍圖通信機制入門
最近正好學習藍圖碰撞和藍圖間通信的有關部分,所以,我正好在此記錄一下,首先是藍圖和角色間的碰撞,比如下面這個藍圖
藍圖與玩家間的碰撞,其實和觸發(fā)器觸發(fā)事件有點像,首先,通過OnComPonentBeginOverlap 來判斷,主角或者其他東西,是否與物體發(fā)生了碰撞,如果發(fā)生碰撞的話,就這這個藍圖所在的位置,發(fā)射一個粒子發(fā)射器,里面添加的是爆炸效果,爆炸之后,讓主角的速度變成1500,然后銷毀這個藍圖就好了,這個藍圖的邏輯依然是很簡單的,那個Cast To Character 這個按照官方的文檔說,他就是獲取Charater并且把它轉(zhuǎn)換成這個藍圖的Character,這樣,他可以獲取這個對象的一些通過Get獲取不了的特殊屬性,這個藍圖完成的功能就是,主角一碰到對應物體,物體爆炸,然后主角移動速度變?yōu)?500
接下來就是藍圖間的通信,藍圖間的通信,除了簡單粗暴的Get,Set之外,主要有兩種方法,一種是通過Custom Event 來封裝成個函數(shù)(暫且就叫它函數(shù)),然后在Level BulePrint里面調(diào)用就可以了,第二種方法就是通過Event Dispatche 來實現(xiàn)事件調(diào)度
首先是第一種,如下圖
(類藍圖)
(層藍圖)
這個藍圖的邏輯是這樣的,首先,獲取物體的位置,然后將它轉(zhuǎn)化為Vector,然后讓MoveBy的Amount控制z軸坐標,之后在層藍圖里按下F鍵觸發(fā)事件,調(diào)用這個Move By就好,這個很簡單,這個實現(xiàn)的功能就是,按下F鍵,相應物體就向上移動20,接下來,就是第二種方式了
類藍圖
層藍圖
這個藍圖看起來非常少,首先我們需要建立一個Event Dispatche,起名為YouHitMe,在類藍圖中,通過Event Hit來看是否碰到,這也是碰撞的一種方式,之后,Call 這個Event Disatche,然后在層藍圖中,調(diào)用這個YouHitMe,然后輸出Ouch,這個藍圖實現(xiàn)的功能是,判斷是否碰到相應物體,假如碰到了,就輸出Ouch
這就是物體碰撞和藍圖間通信的內(nèi)容
-
分享到:
全部評論:0條