本站文章均爲 李華明Himi 原創,轉載務必在明顯處註明:
轉載自【黑米GameDev街區】 原文鏈接: http://www.himigame.com/unreal-engine-game/2164.html
首先Himi在這裏解釋下,爲什麼還是開篇… 原因主要有兩點:
考慮到要寫也要寫點乾貨不是麼?!但是由於官方文檔寫的真的夠詳細了,對於提到的基礎知識我真的不想再贅述,因此希望各位新童鞋一定要先跟着文檔動手過一遍!!!很重要!!!!!!!!!!!
另一方面,本想拿着UE4寫點小項目練手,然後寫點官方文檔裏沒有的或項目中遇到的問題與重點。但是Himi最近在研究React Native,近期可能無法着手繼續研究UE4,因此本篇屬於開篇更合適一些。等回頭正式迴歸繼續學習研究UE4時,屆時正式開始教程系列。
大家可以先進羣進行交流學習,本羣的管理員都是超過2年以上虛幻引擎開發老手!
【Unreal Engine】191452043
先引用官方文檔的解釋:
虛幻引擎4爲程序員提供了兩套工具集,可共同使用來加速開發的工作流程。 新的遊戲類、Slate和Canvas用戶接口元素以及編輯器功能可以使用C++語言來編寫,並且在使用Visual Studio 或 XCode之一編譯後可以在虛幻編輯器中反映出全部變更內容。 藍圖可視化腳本系統是一個強勁的工具,可以讓類通過連接函數區塊和屬性引用來在編輯器中進行創建。
C++類可以作爲藍圖類的基類使用,並且這樣的話,程序員就可以設置基礎的遊戲類,隨後,它們由關卡設計師來進行子類和迭代處理。
OK,說點通俗點:
藍圖與C++是相互配合的,不論你通過哪種方式創建的工程,都可以在項目中創建所需的C++類或藍圖類。
針對藍圖來說:更傾向於項目前期快速構建進行試水看效果。
在Himi的理解來看,藍圖屬於主導,而C++屬於輔助。藍圖快速搭建架子,C++來進行重構、整理、補充!
簡單來看下面這張圖,大家更容易理解:
如上圖所示,你總不想讓你的項目到後期如圖一樣吧。(笑哭)
好了,下面Himi簡單舉個例子來說:
一: 首先大家創建一個C++的項目,然後請按照官方文檔創建一個可移動的Actor。
鏈接: https://docs.unrealengine.com/latest/CHN/Programming/Tutorials/PlayerInput/index.html
二:在項目中創建一個藍圖類,並選擇我們第一步創建好的C++ Actor (MyPawn),如下圖:
Himi 這裏將此藍圖命名爲:“BP_MyPawn”
三:雙擊打開進行編輯BP_MyPawn藍圖,編輯其Event Graph如下圖:
這裏主要對此Actor進行了添加鍵盤Q和E的事件:
按鍵Q: 創建一個時間軸來循環打印一句話
按鍵E:利用(a+b)*c的公式來隨機打印出一個數值
四:將第一步驟的C++ Actor 與 我們新建的藍圖Actor ,都放在世界中。
五:打開關卡藍圖,編輯Event Graph,如下圖:
這裏主要添加按鍵1,2來在C++ Actor與藍圖Actor 之間進行切換控制權。
六:效果圖如下:(點擊查看動態效果)
按下鍵盤2,控制藍圖Actor,然後Q和E按鍵都有事件觸發。
按下鍵盤1,切回到C++的Actor視角,按下Q和E沒有任何事件觸發。
通過這個小例子,完成了C++與藍圖配合實現繼承關係的過程!當然至於如何能夠更好的配合使用,就交給各位了~ 發揮你的想象吧,希望本篇能爲新童鞋解惑C++與藍圖。(PS. 其中很多藍圖的操作或者哪些看不懂的地方,那麼請你先去好好擼一遍官方文檔後,再來看:so easy!)
Himi 在UE4上也是個萌新,希望大家【加羣 191452043】多多討論共同進步!