Unreal Engine4 藍圖入門

                                                          微信公衆號:UE交流學習    UE4開發羣:344602753

             藍圖是Unreal Engine的特色,用C++編程當然好,可是效率要低不少,主要是國內資料比較少,因此不太容易學習,用藍圖編程能夠節省開發成本,我認爲藍圖編程也是能夠解決問題的,他其實也是一個一個方法進行執行的,可能程序員用這個不太習慣,可是用多了仍是挺方便的,對於不懂編程的人來講,思路很是清晰的狀況下,最好是有必定的編程基礎,這樣最好!

             題外話,有個Virtools可視化編程軟件,用的也是類圖,不能用C++直接編程,可是能夠用C++編寫模塊,供調用,我我的認爲它作的仍是挺成功的!

             首先我新建一個藍圖類,在資源視圖中,右鍵新建就能夠!                                           image      image

            點擊Blueprint後彈出一個父類框,其中有Actor,Pawn,Character,PlayerController等,

  在All Classes中還有一些不經常使用的類!在這裏我繼承了Actor類,Actor就是最基本的類,也就是每一個類都必須有的變換類!相似Unity3d的Transform,每一個類都必須有的組件!

            image

            在藍圖類中,首先有兩個事件,是必須有的,Eevnt BeginPlay相似於類的初始化事件,

            ActorBeginOverlap是觸發器觸發事件,就是當前物體碰到了其餘物體的時候就會觸發!

            Event Tick是每幀都調用的事件!

            首先像是每一個程序都同樣的,打印個HelloWorld!其中箭頭表示流程,程序都是線性流程性的,靠一條線鏈接到底,不能用一個箭頭連向兩個地方!其中String就是參數,參數能夠鏈接到多個地方的!

            image

            而後就能夠在屏幕上打印出來Hello World!

            UE在運行的時候默認不顯示鼠標,我寫個代碼,讓顯示個鼠標!

            image

            首先是有個藍圖 SET Show Mouse Cursor這個屬性,後面的框能夠手動輸入參數,來決定是否顯示鼠標,可是若是Target不能爲NULL,不然會編譯不過,也就是說這個方法是屬於某個類的方法,那麼這個Target究竟是什麼類型呢?能夠用鼠標放到Target上,會提示你的類型,那麼咱們就須要獲取當前場景中的人物控制對象,能夠用靜態方法Get Player Controller來獲取,而後賦予它就能夠!

         再說明下Tick事件,它是每一幀都要執行的,那麼咱們在遊戲程序中有一個參數很是的重要,那就是上一幀運行的時間,咱們須要乘以這個參數,來保證遊戲的公平性!那麼如何獲取呢?能夠經過Tick時間的delta來獲取,也能夠經過一個藍圖模塊來獲取!

            image image

            經過BuildString方法,能夠拼接兩個字符串,Prefix是前綴,這裏填寫的是「Delta」,而後把Delat Senconds的值賦予進來,便可進行拼接的!而後打印出來!

                          image

                 咱們能夠在藍圖中添加一個Cube,可是必須勾選Overlap Event,這樣

                  Event ActorBeginOverlap事件纔會被觸發,Collision Presets設置爲

                  OverlapOnlyPawn,這樣會接受角色的觸發!

                  image

                  首先碰到了其餘物體,那麼咱們首先進行試着轉換,採用Cast To ThirdPersonCharacter類型,若是轉換失敗,則執行Cast Failed,轉換成功則進行後續的流程,我採用Get Display Name能夠打印出這個角色的名稱,而後再刪除方塊本身,相似跑酷中的吃到金幣!模塊爲DestroyActor刪除本身!

相關文章
相關標籤/搜索