一篇文章了解UE藍(lán)圖通信方式
快速了解UE藍(lán)圖通信 UE當(dāng)中從一個(gè)藍(lán)圖獲取其他藍(lán)圖的信息十分重要,有些同學(xué)不太了解如何較好的連接其他藍(lán)圖,那么今天老蔣就通過這篇文章將藍(lán)圖通信方式給大家聊一聊
1. 直接通信
最簡單粗暴的通信方式,直接get獲取通信對方,獲取他的信息 比如我們在關(guān)卡藍(lán)圖就可以直接創(chuàng)建一一個(gè)關(guān)卡中某個(gè)actor的引用,和該actor藍(lán)圖進(jìn)行聯(lián)系
通過get actor獲取首個(gè)對象或多個(gè)對象數(shù)組,開銷較大
什么時(shí)候用?
必須要引用某個(gè)獨(dú)立的actor并聯(lián)系的,比如
關(guān)卡藍(lán)圖中調(diào)用攝像機(jī)切換鏡頭,獲取某個(gè)npc坐標(biāo)
2. 通過藍(lán)圖轉(zhuǎn)換cast
cast是我們很常用的通信方式,比如一個(gè)NPC,我們需要讓他能訪問玩家角色藍(lán)圖的一些數(shù)據(jù),就需要在NPC的藍(lán)圖里通過CAST來獲取和玩家的聯(lián)系,就相當(dāng)于你得知道對方的電話號(hào)碼才能和對方撥通,號(hào)碼錯(cuò)了,那就沒法聯(lián)系啦
cast 的時(shí)候要特別注意的是object必須要正確,比如玩家藍(lán)圖的object需要get 玩家 pawn 或 character 但是玩家好辦,如果要獲取某個(gè)npc或物品actor就不好獲取了 可以通過get actor 獲取
類的Actor來實(shí)現(xiàn)(方法1)
,但是這種方式本身開銷較大,不適合經(jīng)常使用,除非你必須要獲取某個(gè)沒有直接交互的對象 所以我們可以通過其他方式,比如通過trace檢測的方法 返回命中結(jié)果里面的hit actor來獲取我們需要的actor對象進(jìn)而cast進(jìn)行通信,因?yàn)橛螒虍?dāng)中一般來說我們需要通信聯(lián)系的對象都是要和我們直接互動(dòng)的對象,所以使用類似這種檢測的方法可以更加精準(zhǔn)有效的獲取對象
什么時(shí)候用?
需要獲取玩家角色藍(lán)圖的時(shí)候 需要訪問
多個(gè)擁有相同父級(jí)藍(lán)圖
的子藍(lán)圖的時(shí)候,比如敵人NPC 獲取某個(gè)特殊藍(lán)圖或組件的時(shí)候,比如控件藍(lán)圖,動(dòng)畫藍(lán)圖 注意的是cast開銷較大,不建議經(jīng)常調(diào)用,所以可以在藍(lán)圖的事件開始運(yùn)行時(shí)就cast轉(zhuǎn)換并生成變量,后續(xù)訪問直接使用該變量
3. 接口通信
接口就像你和需要聯(lián)系的對象之間建立了一個(gè)
接線員
,需要聯(lián)系的時(shí)候直接找接線員,不管對方是什么類型的對象我們都可以訪問 比如你用劍砍了一個(gè)人,或者砍了一棵樹,或者砍了一塊石頭,這些對象不是同一個(gè)類型,但是他們都可以使用相同的接口進(jìn)行獲取,而不需要一一轉(zhuǎn)換 當(dāng)然,如果你砍的對象有同一個(gè)父類,那么Cast父類進(jìn)行通信是同樣的效果 使用接口,則需要actor在
類設(shè)置
里,添加需要的接口
接口可以建立多個(gè)函數(shù),可以有輸入,也有輸出,沒有輸入輸出他就可以當(dāng)做一個(gè)事件進(jìn)行調(diào)用
帶這種小齒輪的就是事件接口調(diào)用
有輸出輸入了,他就成了函數(shù)
我們要訪問接口也很簡單,在獲取對象的情況下,輸入接口的函數(shù)/事件名稱 使用帶消息后綴的
接口的調(diào)用右上角會(huì)有一個(gè)信件的小圖標(biāo),代表他就是接線員,只要對象成功添加了接口,我們就可以通過這個(gè)接線員來訪問他對應(yīng)的函數(shù)內(nèi)容
什么時(shí)候用?
訪問多個(gè)不同類型藍(lán)圖通過同一個(gè)事件或函數(shù)執(zhí)行不同結(jié)果的時(shí)候 比如不同物體都可以被玩家摧毀,但是有的破碎,有的直接消失,有的執(zhí)行粒子效果,通過同一個(gè)接口觸發(fā)
4. 事件分配/分發(fā)器(
分發(fā)器具體使用案例后面會(huì)出文章專門說一下
)
使用事件分發(fā)器,可以綁定
多個(gè)事件
進(jìn)行調(diào)用 我們可以建立事件分發(fā)器 拖入到場景中,對他進(jìn)行綁定(事件),調(diào)用,解除綁定等操作 通過其他藍(lán)圖調(diào)用該分發(fā)器,進(jìn)而激活綁定的事件 事件分發(fā)器就像是一個(gè)廣播員,把消息發(fā)放出去,所有接收這個(gè)消息的都會(huì)執(zhí)行相應(yīng)的結(jié)果
什么時(shí)候用?
多個(gè)場景
監(jiān)聽相同
一個(gè)事件,集體觸發(fā)的時(shí)候 比如玩家打死一個(gè)boss,下個(gè)場景通道傳送門開啟 當(dāng)前場景中的所有敵人都不再攻擊玩家 玩家擺出勝利姿勢 播放音效,特效等 這些條件都在boss死亡時(shí)候觸發(fā)
具體使用根據(jù)使用場景靈活應(yīng)用,并不是死的規(guī)定,接口和分發(fā)器執(zhí)行效率更高,速度更快 本文章由老蔣整理編寫,如需轉(zhuǎn)載請注明出處