虛幻引擎C++學習筆記(一)
筆記課程為國外UE教程視頻:UdemyUnrealEngineCTheUltimateShooterCourse
一、開發(fā)準備
硬件選擇(僅參考)
CPU:i7-6700k、AMD 3950X
固態(tài)硬盤:250G~500G以上
內存:16G~32G以上
IDE選擇
Windows->Visual Studio
Mac->Xcode/Visual Studio
Visual Studio設置
1.將解決方案配置顯示完全:工具-自定義-命令選項卡-工具欄下拉列表(ToolBar)-找到標準配置和解決方案配置(Standard)-修改工具欄寬度。
2.關閉不必要的底部窗口:引擎工作時僅保留輸出窗口,關閉其他例如錯誤列表窗口。
3.排除錯誤列表的干擾:工具—選項—項目與解決方案—禁用"若生成完成時有錯誤,則始終顯示錯誤列表"。
4.禁用非活動塊干擾:工具—選項—文本編輯器—C/C++—查看—非活動代碼—顯示非活動塊—False。
5.不顯示無關文件夾:工具—選項—文本編輯器—C/C++—高級—瀏覽/導航—禁用外部依賴項文件夾—True。
6.關閉編輯繼續(xù)功能:工具—選項—文本編輯器—調試—常規(guī)—禁用"啟用編輯并繼續(xù)"。
7.代碼行數(shù)顯示:工具—選項—文本編輯器—C/C++—常規(guī)—開啟“行號”。
二、安裝引擎
引擎下載地址
https://www.unrealengine.com/zh-CN/download
版本選擇
最好跟隨所學教程的版本,項目開發(fā)中也不要輕易升級版本,避免不必要的錯誤沖突。
三、與引擎相關的C++基礎概念
面向對象:繼承
1.子類繼承于父類,擁有父類的方法、變量。
2.子類也可以有多個父類,為多重繼承。多重繼承下的子類同時擁有每個父類的方法、變量。
3.如果一個指向父級的指針變量被創(chuàng)建,那它也可以指向這個父類的所有子孫類。
4.子類可以重寫他繼承的函數(shù)方法。
面向對象:多態(tài)
1.子類所繼承的方法被調用時,總會得到你所調用的子類版本的方法,即使調用方法的指針變量是指向父類的。
2.使用cast類型強轉(成功后)可將指定的子類對象正確傳遞給別的對象。
引擎的基本對象(Is A)
基本對象組成的族譜:Object—Actor—Pawn—Character(從左到右為父到子)。
Object:僅能存儲數(shù)據(jù),無法被放置在Level中。
Actor:可以被放置在Level中,擁有視覺表現(xiàn),例如3D模型。
Pawn:可以被控制器(例如鍵盤輸入、鼠標點擊等)控制。
Character:擁有移動組件(movement component),而移動組件則具有跳躍、游泳、飛行與其他角色交互等功能。
在基礎對象的基礎上,引擎派生出更多的其他對象。
引擎的嵌套結構(Has A)
虛幻引擎嵌套結構為:Package—World—Level—Actor—Actor Component(從左到右為外到內)。
獨立與嵌套外的類:Mesh模型、Textures紋理。
四、反射機制
C++沒有內置的反射機制,但虛幻引擎有自己的反射系統(tǒng)。它將C++的數(shù)據(jù)與編輯系統(tǒng)合并,將其暴露在藍圖(引擎自帶的可視化腳本系統(tǒng))中以及進行垃圾回收。
宏
虛幻引擎有一套UHT(Unreal Header To)系統(tǒng)。項目編譯時,程序如果讀取到你標記的特殊宏后,會在標記行生成額外的代碼,而UHT系統(tǒng)則會通過反射機制,將標記行的次行信息反射到生成的代碼中。
藍圖只有獲取了以上加入反射機制的信息,才能將我們標記的信息數(shù)據(jù)暴露出來。
垃圾回收