當(dāng)前位置:
首頁 >
Unreal Engine4 蓝图入门
發(fā)布時(shí)間:2025/3/20
34
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Unreal Engine4 蓝图入门
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????????????????????????????????????????????????????????? 微信公眾號:UE交流學(xué)習(xí)??? UE4開發(fā)群:344602753
???????????? 藍(lán)圖是Unreal Engine的特點(diǎn),用C++編程固然好,但是效率要低很多,主要是國內(nèi)資料比較少,所以不太容易學(xué)習(xí),用藍(lán)圖編程可以節(jié)省開發(fā)成本,我認(rèn)為藍(lán)圖編程也是可以解決問題的,他其實(shí)也是一個(gè)一個(gè)方法進(jìn)行執(zhí)行的,可能程序員用這個(gè)不太習(xí)慣,但是用多了還是挺方便的,對于不懂編程的人來說,思路非常清晰的情況下,最好是有一定的編程基礎(chǔ),這樣最好!
???????????? 題外話,有個(gè)Virtools可視化編程軟件,用的也是類圖,不能用C++直接編程,但是可以用C++編寫模塊,供調(diào)用,我個(gè)人認(rèn)為它做的還是挺成功的!
???????????? 首先我新建一個(gè)藍(lán)圖類,在資源視圖中,右鍵新建就可以!?????????????????????????????????????????? ?????
??????????? 點(diǎn)擊Blueprint后彈出一個(gè)父類框,其中有Actor,Pawn,Character,PlayerController等,
? 在All Classes中還有一些不常用的類!在這里我繼承了Actor類,Actor就是最基本的類,也就是每個(gè)類都必須有的變換類!類似Unity3d的Transform,每個(gè)類都必須有的組件!
???????????
??????????? 在藍(lán)圖類中,首先有兩個(gè)事件,是必須有的,Eevnt BeginPlay類似于類的初始化事件,
??????????? ActorBeginOverlap是觸發(fā)器觸發(fā)事件,就是當(dāng)前物體碰到了其他物體的時(shí)候就會(huì)觸發(fā)!
??????????? Event Tick是每幀都調(diào)用的事件!
??????????? 首先像是每個(gè)程序都一樣的,打印個(gè)HelloWorld!其中箭頭表示流程,程序都是線性流程性的,靠一條線連接到底,不能用一個(gè)箭頭連向兩個(gè)地方!其中String就是參數(shù),參數(shù)可以連接到多個(gè)地方的!
???????????
??????????? 然后就可以在屏幕上打印出來Hello World!
??????????? UE在運(yùn)行的時(shí)候默認(rèn)不顯示鼠標(biāo),我寫個(gè)代碼,讓顯示個(gè)鼠標(biāo)!
???????????
??????????? 首先是有個(gè)藍(lán)圖 SET Show Mouse Cursor這個(gè)屬性,后面的框可以手動(dòng)輸入?yún)?shù),來決定是否顯示鼠標(biāo),但是如果Target不能為NULL,否則會(huì)編譯不過,也就是說這個(gè)方法是屬于某個(gè)類的方法,那么這個(gè)Target到底是什么類型呢?可以用鼠標(biāo)放到Target上,會(huì)提示你的類型,那么我們就需要獲取當(dāng)前場景中的人物控制對象,可以用靜態(tài)方法Get Player Controller來獲取,然后賦予它就可以!
???????? 再說明下Tick事件,它是每一幀都要執(zhí)行的,那么我們在游戲程序中有一個(gè)參數(shù)非常的重要,那就是上一幀運(yùn)行的時(shí)間,我們需要乘以這個(gè)參數(shù),來保證游戲的公平性!那么如何獲取呢?可以通過Tick時(shí)間的delta來獲取,也可以通過一個(gè)藍(lán)圖模塊來獲取!
???????????
??????????? 通過BuildString方法,可以拼接兩個(gè)字符串,Prefix是前綴,這里填寫的是“Delta”,然后把Delat Senconds的值賦予進(jìn)來,即可進(jìn)行拼接的!然后打印出來!
?????????????????????????
???????????????? 我們可以在藍(lán)圖中添加一個(gè)Cube,但是必須勾選Overlap Event,這樣
????????????????? Event ActorBeginOverlap事件才會(huì)被觸發(fā),Collision Presets設(shè)置為
????????????????? OverlapOnlyPawn,這樣會(huì)接受角色的觸發(fā)!
?????????????????
????????????????? 首先碰到了其他物體,那么我們首先進(jìn)行試著轉(zhuǎn)換,采用Cast To ThirdPersonCharacter類型,如果轉(zhuǎn)換失敗,則執(zhí)行Cast Failed,轉(zhuǎn)換成功則進(jìn)行后續(xù)的流程,我采用Get Display Name可以打印出這個(gè)角色的名稱,然后再刪除方塊自己,類似跑酷中的吃到金幣!模塊為DestroyActor刪除自己!
轉(zhuǎn)載于:https://www.cnblogs.com/alongu3d/p/5066955.html
總結(jié)
以上是生活随笔為你收集整理的Unreal Engine4 蓝图入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二百六十一、二天 how can I坚
- 下一篇: SVN+post-commit 搭建自动