UE4开发工具 - COOKBOOK
UE4開發工具
- 介紹
- 硬件需求
- 安裝Visual Studio
- 準備
- 步驟
- 總結
- 創建和編譯第一個C++ 項目
- 準備
- 步驟
- 總結
- 更多
- 改變Visual Studio代碼字體和顏色
- 準備
- 步驟
- 總結
- 更多
- 擴展——更換Visual Studio的主題風格
- 步驟
- 總結
- 自動補全和自動格式化設置
- 準備
- 步驟
- 總結
- 快捷鍵
- 準備
- 步驟
- 總結
- 擴展鼠標的用途
- 步驟
- 總結
- 安裝Unreal Engine 4
- 準備
- 步驟
- 總結
- 更多
- 創建第一個UE4工程
- 步驟
- 切換編輯器語言
- 準備
- 步驟
- 創建第一個關卡
- 準備
- 步驟
- UE4熱加載
- 準備
- 步驟
- 使用UE_LOG打印日志
- 準備
- 步驟
- 總結
- FString的格式化輸入
- 準備
- 步驟
在這一章,我們會對UE4游戲開發的一些基礎部分進行概述。主要包含以下內容:
- 安裝Visual Studio
- 在Visual Studio中創建、編譯第一個C++項目
- 改變Visual Studio的默認字體和顏色
- 擴展——更換Visual Studio的主題風格
- Visual Studio的自動補全和格式化設置
- Visual Studio熱鍵
- 擴展Visual Studio的鼠標用途
- UE4 —— 安裝
- UE4 —— 第一個工程
- UE4 —— 創建第一個關卡
- UE4 —— 熱加載
- UE4 —— 使用UE_LOG打印日志
- UE4 —— FString的格式化
Unreal Engine 4.x Scripting with C++ Cookbook Second Edition
介紹
制作游戲是一項非常復雜的工作,需要將資產和代碼很好地結合到一起。而為了制作資產和代碼,我們需要一些相當不錯的工具:美術工具、聲音工具、關卡編輯工具以及代碼編輯工具。
這章我們會討論尋找合適的工具以創建資產和編碼。資產包括任意的視覺藝術(2D精靈、3D模型),音頻(音樂和音效)和游戲場景。代碼是核心,它指示計算機如何將這些資產捆綁在一起以創建游戲世界和關卡,以及如何使游戲世界運轉起來。
市面上相關的工具特別多,我們將分別探討其中的幾個,尤其是游戲編輯工具,因為功能復雜體量不小,為了避免制作游戲的過程中工具頻繁崩潰,也為了身體健康,優良的硬件支持必不可少。當然我們也會探討下將數據備份到遠程服務器的源碼控制。至于UE4程序的編寫,就不必多說了,這是本書的主題。
硬件需求
系統:Windows 7 64位 及以上系統/macOS X 10.9.2以上
CPU:四核的Intel或者AMD處理器
內存:8GB
顯卡:兼容DX11的顯卡
(雖然上面的配置也能運行UE4,電腦配置越高越好)
安裝Visual Studio
Visual Studio是UE4編輯C++代碼的基礎軟件包。
準備
我們將建立C++ 編譯環境來構建UE4應用程序。下載Visual Studio 2017,安裝并為UE4 C++編碼進行設置。
步驟
點擊 https://my.visualstudio.com/Downloads?q=visual%20studio%202017&wt.mc_id=omsftvscom~older-downloads,下載Visual Studio Community 2017(version 15.9),大約是1.2m的EXE格式安裝包;
啟動安裝程序,然后一直下一步,直到給電腦添加Visual Studio 2017組件窗口的時候,注意,勾選的組件特征越多,安裝包越大,占用的磁盤空間就需要得更多;
我們需要安裝C++ 環境,但默認情況下C++ 是可選的,如果不主動勾選,是不會安裝的。在“工作負載”選項卡下,滾動到“移動與游戲”部分,勾選“使用C++ 的游戲開發”;
在單個組件里面,建議勾選上 .NET Framework 4.6.2 SDK
選擇好之后,點擊安裝按鈕。安裝程序會下載所需的組件并進行安裝。安裝完成后,安裝程序可能會建議你重啟計算機。重啟它。
在下載和安裝Visual Studio 2017之后,就啟動它,你會看到以下登錄對話框。
你可以用你的微軟賬戶來登錄(就是那個你用來登錄windows 10的),或者注冊一個新的賬戶。登錄或注冊后,你就能夠使用Visual Studio軟件了,登錄到桌面代碼編輯程序似乎有點奇怪,但是你的登錄就用于源碼控制。
總結
Visual Studio 是一款非常牛叉的編輯器,之后你絕大多數的時間將會耗在里頭。在下一個部分,我們回去討論下怎么創建和編譯自己的代碼。
創建和編譯第一個C++ 項目
為了在Visual Studio里編譯和運行程序,我們需要一個工程。
準備
在這個部分,我們會了解如何使用Visutal Studio創建一個可運行的程序。為此,我們將在Visual Studio中創建一個項目進行托管,組織和編譯代碼。
步驟
在 Visual Studio中,一堆代碼包含在一個被稱為項目(Project)中。項目是代碼和資產的可構建的集合體,能夠生成可執行文件(.exe 可運行的)或庫(.lib 或 .dll)。而一堆項目可以被歸納在一個叫做解決方案(Solution)里?,F在讓我們先為控制臺應用程序創建一個解決方案和工程,之后再為UE4示例創建項目和解決方案。
打開Visual Sutdio,然后依次點擊 文件->新建->項目。
你將看到以下對話框:
在左側選擇Visual C++,在中間選擇控制臺應用。在稍下的方框里輸入項目名,然后點擊確定:
應用程序向導完成后,你就創建了你的第一個項目。包含解決方案和項目。
為了更清晰地了解項目的文件目錄結構,可以使用解決方案資源管理器,一時半會找不到,可以點擊 視圖(V)->解決方案資源管理器(或者按Ctrl+Alt+L)。解決方案資源管理器作為一個窗口,通常??吭谥骶庉嫶翱诘淖笫謧?#xff0c;如下圖所示:
在Visual Studio中可以隨意調整窗口布局。如果想要返回默認布局,點擊 窗口->重置窗口布局 即可。
解決方案資源管理器還可以顯示項目中的所有文件。創建新項目后默認包好幾個文件,我們可以添加新文件以及刪除文件。隨著項目的擴展,越來越多的文件會被添加到項目中。在源文件里,你會看到一個叫做FirstProject.cpp的文件,如下:
5.按 Ctrl+Shift+B 去構建項目,之后再按 Ctrl + F5 運行項目。
6.項目的可執行文件創建之后,會自動啟動,然后你會看到一個黑色的窗口:
總結
構建的過程,是將文本文件轉變成二進制文件的過程。運行該文件相當于運行你的游戲程序,程序的所有內容就是main()函數的{}內的代碼。
更多
現在我們來看看構建配置。Debug 和 Release是你至少應該知道的兩種構建配置。編輯器當前選擇的是Debug模式,配置的位置默認在工具欄的下方。
根據選擇的編譯配置,將會使用不同的編譯器選項。Debug模式通常包含大量的調試信息,以及關閉優化以加速編譯的功能。Release模式通常會有一些優化設置(大小和速度),編譯的時間會更長一些,會生成更小或更快運行的可執行文件。如果需要逐行逐行的調試,Debug模式肯定比Release模式更好。
改變Visual Studio代碼字體和顏色
由于顯示器分辨率的不同,能夠自定義代碼字體和顏色顯得尤為必要。
準備
Visual Studio 是一個可高度定制的代碼編輯工具。你如果覺得默認字體太小了,可以按住Ctrl鍵,通過鼠標滾輪來放大或縮小字體。如果你想改變默認字體大小和顏色,或者做更多其他的設置,比如背景色之類的,就需要打開字體和顏色對話框來做調整。字體和顏色對話框允許你對代碼編輯器的字體和顏色的各個方面進行設置。
步驟
在visual studio的工具欄上,找到 工具(Tools)->選項(Options):
然后,選擇環境(Environment)->字體和顏色(Fonts and Colors)。
在顯示其設置(Show settings for:)下選擇文本編輯器(Text Editor),在字體(粗體表示等寬字體)(Font)處選擇新宋體,顯示項(Display items)為純文本(Plain Text),改變大小(Size)。然后點擊確認。
文本編輯器和純文本描述了編輯器中所有代碼文本所使用的字體和大小。如果你更改了字體的大小,那么編輯窗口中所有的文本(C、C++、C#和其他語言)都會發生變化。
顏色(前景色和背景色)對于每個不同的內容是完全可以自定義的。這個可以自己改變一些東西嘗試一下。
你如果想要配置一下輸出窗口的字體大小,可以在顯示其設置(Show settings for:)處點擊下三角,選擇輸出窗口(Output Window),然后改變右側的大小(Size)即可。
輸出窗口在編輯器的底部,是個有點小的窗口,主要用來顯示構建結果和編譯錯誤。
雖然字體和顏色設置不能導入導出,但是你可以使用Visual Studio編輯器主題擴展。想要了解更多內容,請參考這章的***擴展——更換Visual Studio的主題風格***,學習如何導入導出自定義的編輯器主題。
所以,盡可能不要在該對話框修改字體顏色,但對于更改字體類型和字體大小還是得在這里修改。
總結
字體和顏色對話框可以比較簡單地修改文本編輯器和其他窗口中文本的外觀,比如輸出窗口。為了讓編碼環境更舒適一些,這個還是非常有用的。
更多
當你費勁地自定義字體和顏色設置后,忽然發現竟然不能導出設置,以便于給其他人使用,或者導入到另一臺電腦里的Visual Studio里。其實還是有辦法的,我們將在下一個部分繼續探討。
擴展——更換Visual Studio的主題風格
默認情況下,是不能保存你在字體和顏色對話框里做的字體顏色設置的。為了解決這個問題,Visual Studio提供了一個叫做主題的功能。你可以通過依次點擊 工具(Tools)->選項(Options)->環境(Environment)->General(通用),改變默認主題到三個預裝的主題中的任意一個。
不同的主題風格會完全改變Visual Studio的外觀,從標題欄的顏色到文本編輯器窗口的背景色改變得徹徹底底。
在擴展的幫助下,你可以完全自定義Visual Studio的主題。擴展是可以安裝到Visual Studio上,以修改其行為的小程序。
沒有擴展的話,是沒有辦法將你自定義的顏色設置保存并在另一個Visual Studio環境里加載出來。有了擴展,你就可以保存自己的設置與其他人分享。你還可以將其他人或自己的顏色設置加載到Visual Studio的新副本中。
步驟
依次點擊 工具(Tools)->擴展和更新(Extensions and Updates)
在彈出的對話框的左側,點擊聯機(Online),然后在右側的搜索欄里輸入Theme Editor。Color Theme Editor就是搜索結果里的第一條。
單擊右手側的那個小小的下載按鈕。下載完成后,窗口底部會有出現關閉Visual Studio后就開始安裝的提示。
關閉擴展和更新的窗口和Visual Studio,保存項目。程序關閉后,VSIX installer 窗口就會彈出來,我們單擊修改,擴展就開始安裝了。
安裝完成后,我們再次打開Visual Studio和項目。
重啟后,單擊工具(Tools)->Customize Colors即可打開顏色主題編輯頁面:
在出現的“顏色主題”頁面中,選擇要用作基礎主題或開始主題的選項,然后單擊選項右上角調色板形狀的小圖標。
主題的副本會出現在窗口下面的Custom Themes部分。將鼠標懸停在自定義主題上,單擊自定義主題右上角出現的三個按鈕中的中間那一個,以編輯主題。當你編輯主題的時候,你可以改變所有和C++關鍵字相關的文本顏色。
你感興趣的應該是C++ 文本編輯器部分。為了訪問到所有的C++ 文本編輯器選項,需要在主題編輯器窗口的上部分單擊 Show All Elements:
請注意,雖然你感興趣的大多數設置都在文本編輯器|C/C++ 下,但是也有一些是沒有C++ 子標題的。例如,主/純文本的設置就是編輯器窗口的文本編輯器|純文本下。
依次單擊**工具(Tools)|選項(Options)|環境(Environment)|General(通用)**可以選擇主題。你創建的主題都會出現在下拉框里。
總結
當我們下載安裝這個擴展后,他就能很好地集成到Visual Studio中去。導出、上傳你的主題都變得非常容易。
添加主題安裝到visual studio,會將其作為一個擴展置于工具|擴展和更新里,刪除主題,點擊卸載即可。
自動補全和自動格式化設置
準備
代碼必須正確格式化。代碼格式一致,會讓你和你的同事能夠更好地理解、認同和保持代碼沒有bug。這就是為什么Visual Studio編輯器包含那么多自動格式化工具的原因。
步驟
找到 工具(Tools)|選項(Options),之后,在找到 文本編輯器(Text Editor)| C/C++,選中C/C++,在右側可以選擇是否開啟括號自動補全功能。
括號自動補全的意思是,當你輸入‘{’,‘}’會自動幫你輸入。如果你不習慣文本編輯器插入你預料之外的字符,這個功能或許會讓你感到困惑。
輸入提示功能,是在你輸入的時候,會彈出一個對話框,顯示所有和你輸入相關的字符名稱。這個功能就很給力,至少你不用完全記住十分鐘前聲明的十幾個變量名。
在你進行編碼的時候,按下Ctrl + 空格鍵可以激活這個功能
更多的自動完成行為可以在 文本編輯器(Text Editor)|C/C++|格式化(Formatting)處找到
建議一開始的時候使用所有自動完成行為,當你覺得某些自動完成設置影響到你的工作的時候,再將其禁用。
你還可以選擇一段文本,選擇 編輯 | 高級 | 設置選定內容的格式(Ctrl+K,Ctrl+F),對選定的文本進行格式化。
總結
默認的自動補全和自動格式化功能可能會讓你覺得疑惑。你需要就代碼格式(空格、制表符、縮進等)和你的團隊進行溝通,以配置統一的Visual Stduio設置。
快捷鍵
有許多快捷鍵可以使您的編碼和項目導航更快,更高效。在這個部分,我們使用一些常用的快捷鍵來增強編碼速度。
準備
打開一個項目來練習快捷鍵的使用。
步驟
下面是一些非常有用的快捷鍵,值得一試:
單擊代碼的一部分,然后單擊至少10行代碼之外的其他位置?,F在,按Ctrl + - [向后導航],光標會跳轉到之前的位置。通過分別按 Ctrl + - 和 Ctrl + Shift + - 可以瀏覽源代碼的不同頁面(光標上次所在的位置和當前所在的位置):
請注意:所提到的是鍵盤上靠近0鍵的那個 -,數字鍵盤上的無效。
好吧,舉個例子,你正在編寫函數的定義,突然你想回到之前聲明函數的那個位置(函數聲明在足夠遠的地方,起碼十行意外或者干脆在另一個文件里頭),這個時候,你只用按下Ctrl + -,就可以跳轉到之前地方,這叫做向后導航。而向前導航是按Ctrl + Shift + -,回到某種意義上的當前位置。
向后向前導航,就對應著快捷鍵Ctrl + -和Ctrl + Shift + -
按下Ctrl+W可以選擇單詞(這個似乎只在英文版中默認存在,但也可以配置);
按住Ctrl + 向右箭頭(或向左箭頭),可以向左向右,可以快速跳過單詞。按住Ctrl + Shift + 向右箭頭(或向左箭頭),可以持續選擇單詞。
按 Ctrl+C 復制文本,Ctrl+X剪切文本,Ctrl+V粘貼文本。
剪切板環,是對Visual Studio維護著最后一個復制操作堆棧的描述。按下Ctrl+C,你就會將你想復制的文本放入到一個有效的堆棧中,再次在不同的文本上按Ctrl+C,會將先前的文本推入剪切板堆棧。例如,以下情景,首先在單詞***cyclic***上按Ctrl+C,之后再在單詞***paste***上按Ctrl+C。
按下Ctrl+V會粘貼堆棧中頂部的元素。按Ctrl+Shift+Insert會將之前推入該堆棧的文本顯示出來,你可以在有限的復制操作歷史中找到需要的內容。這個功能看著有點奇怪,但有時候卻很有用。
Ctrl+M可以折疊代碼塊。折起來需要按兩下,展開按一下。
總結
使用快捷鍵能夠減少編碼時使用鼠標的次數,從而提高編碼效率。
擴展鼠標的用途
鼠標是選擇文本的便捷工具。這個部分,我們重點介紹鼠標的高級用法,便于快速編輯代碼文本。
步驟
按住Ctrl鍵,單擊單詞可以選擇整個單詞。
按住Alt鍵選擇一個文本框(Alt +左鍵單擊+拖動)。
然后,可以剪切,復制或覆蓋框形文本區域;在后一種情況下,鍵入的字符將在所有選定行中重復。
總結
單獨單擊鼠標可能很乏味,但是在Ctrl + Alt的幫助下,它變得非常酷。
安裝Unreal Engine 4
要正確安裝和配置UE4,需要執行許多步驟。這個部分,我們將逐步介紹引擎的正確安裝和設置。
準備
UE4會占用相當大的空間,你的硬盤上至少得有20GB的可用空間用于安裝。需要注意的是,每個項目工程的大小也至少1GB,如果你想創建更多的項目,電腦空間得更大才行。
步驟
在你的網絡瀏覽器中訪問unrealengine.com。
在頁面的右上角點擊下載按鈕。會讓你登錄Epic Games賬戶,如果有就翻到下面點擊登錄選項,沒有就創建一個。
通過雙擊EpicGamesLauncherInstaller-x.x.x-xxx.msi,運行Epic Games啟動器程序,在默認位置安裝。
Epic Games啟動器程序安裝后,雙擊對應的桌面圖標或開始菜單的圖標打開啟動器。
使用已有的賬戶登錄啟動器,然后就能看到啟動器的主界面。
有很多可用的選項,這里我們只需要點擊頁面左側的虛幻引擎選項。
稍微瀏覽一下界面,然后就開始安裝引擎吧。單擊右上角超大的安裝引擎按鈕,然后就會彈出一個對話框,選擇一下引擎的安裝位置,最后點擊安裝按鈕就行了。啟動器將開始下載引擎。7、8、9個G,這估計要一會兒。安裝完成之后,你的頁面就會像下面這樣:
安裝成功后,安裝引擎按鈕會變成啟動引擎按鈕。
總結
Epic Games啟動器是啟動引擎本身所需要的程序。它在庫選項卡中保留有所有項目和庫的副本。
更多
隨著學習的深入,你應該會得到一些免費的庫在 庫 | 保管庫 這個部分。點擊庫選項卡,然后往下滑,直到你看到我的工程下面的保管庫。
創建第一個UE4工程
在UE4中設置項目需要采取一些步驟。為了能夠創建所需要的項目類型,正確地選擇一些設置就顯得很重要。創建第一個項目的時候還是遵守這個部分的說明比較好。
你創建的每個項目至少會占用1GB的存儲空間,所以你務必確定好項目創建的位置,以保證隨著項目的擴展不會顯得空間不足。
步驟
注意,你看這本書的時候引擎的最新版本肯定不一樣,但基本的步驟都差不多,不會有太大的變化。
-
如果只是用藍圖的話,默認設置就是藍圖設置;
-
如果除了藍圖外還是用C++ 構建項目,需要將界面左上角的Blueprint換成C++;
本書,只使用C++工程模板。
- 你可以選擇目標平臺是桌面應用還是移動應用。
- 你還可以更改質量設置(植物上有個太陽的選項),但是一般情況你不需要改變這些,因為反正可以在引擎里重新設置。
- 接下來的是,是否在項目中包含入門內容(Starter Content),你可以在項目中使用入門內容包,里面有一些不錯的材質和紋理,對于初學者來說,這是個寶藏啊。當然,以后你就不那么覺得了。
你如果不想使用入門內容包,也可以在虛幻商城免費的資源里,找到一個叫做游戲貼圖材質包(Game Textures Material Pack)的資源。
- 最后一個是,是否在新項目中激活實時光線追蹤特征。這個是高級內容,以后再說吧。
給你的項目指定目錄,需要注意的是,每個項目會占用很大的空間,目標目錄可用空間需要足夠充足才好。
給你的項目命名。最好起一個契合項目內容的名字。
點擊創建(Create Project)。UE4編輯器和Visual Studio 2017會同時啟動,使你能編輯項目。
注意,以后你有兩種方式可以啟動Visual Studio 2017解決方案:第一種是用資源管理器定位到項目目錄,雙擊ProjectName.sln文件。第二種是從引擎里,依次點擊 文件 | 打開Visual Studio。
切換編輯器語言
雖然最好是使用英文,但也有人更習慣中文或其他語言。
準備
項目需要已經打開。
步驟
依次點擊 編輯(Edit)| 編輯器偏好設置(Editor Preferences)
點擊通用(General)下的區域和語言(Region&Language)選項卡,然后在右側(Internationalization)下,改變編輯器語言(Editor Language)
當然,你還可以通過界面右上角進行導入導出,默認值的設置。
創建第一個關卡
完備的編輯器UI,使得創建關卡變得很簡單。這個部分,我們將重點介紹基礎的編輯器使用以及描述你的第一個項目啟動后該如何創建你的第一個關卡。
準備
完成上一個部分——創建你的第一個UE4項目。項目構建完成后,我們就可以繼續創建關卡。
步驟
如果創建項目的時候包含了入門內容,項目啟動后會打開默認關卡,該關卡包含了一些Geometry和場景。
你沒必要從入門內容的默認關卡開始構建你的游戲,可以刪掉,然后新建一個關卡。
新建一個關卡,依次點擊 文件(File)|新建關卡(New Project)
這里,引擎提供了幾種新關卡的默認模板,你可以根據需要來選擇。Default提供了默認的天空和Geometry,TimeOfDay提供另外提供了一個日夜變換的功能,VR-Basic是VR游戲的基礎關卡,而空白關卡則是一無所有,當你選擇空白關卡后,你可能需要添加燈光和基礎的Geometry,以使你的游戲關卡可見。
如果你有入門內容包或其他的什么資源,你可以將其從內容瀏覽器中拖入到關卡。只需要將內容實例從內容瀏覽器中拖放到關卡中并保存,接著點擊播放按鈕即可啟動游戲。
使用放置actor面板(Modes Panel)==窗口(Window)|放置actor(Modes)==將一些幾何圖形Actor添加到關卡中。
默認情況下,基礎選項處于選中狀態,其中包含虛幻中所需的常規幾何圖形和其他常見特征。你也可以通過放置actor選項卡,通過點擊其左側的光源子選項來向關卡中拖拽燈光。
放置actor(Modes)面板包含兩個對關卡構建很有用的內容。一些示例幾何體(立方體、球體等),以及滿面板的燈光。嘗試這些內容,并開始布置你的關卡。如果你對如何在UE4里構建關卡感興趣的話,可以參考下https://docs.unrealengine.com/zh-CN/Engine/QuickStart/index.html
UE4熱加載
當你創建一個新的C++項目后,你會發現Visual Studio和虛幻4都打開了。這個部分,我們將通過在Visual Studio修改腳本的示例,來看看編輯器有什么表現。
準備
要看更改一個類的效果,我們不得不實際使用這個類。虛幻會默認為我們創建一些類,ACookBookGameModeBase 就是其中之一,在這個簡單的案例中,我們就用它來演示。
這個類的名字是我隨便創建的,你如果創建不一樣,也沒關系。
打開項目設置,依次點擊編輯(Edit)|項目設置(Project Settings)。在項目(Project)選項卡下點擊地圖和模式(Maps&Modes)。
在默認游戲模式(Default GameMode) 處,選擇CookBookGameModeBase:
注意,在代碼中,它的名字是ACookBookGameModeBase,在藍圖的菜單選擇里不包含A。這是由于虛幻的命名規則:繼承自Actor的類首字母需要是A。我們會在本書的后面再進行詳細說明。
Game Mode 是一個包含著游戲的規則的類。
詳情請查看https://docs.unrealengine.com/zh-CN/Gameplay/Framework/GameMode/index.html
步驟
在Visual Studio的解決方案下,你會看見很多先前創建的文件。展開Games/CookBook/Source/CookBook文件夾,你應該會發現CookBookGameModeBase.h和CookBookGameModeBase.cpp文件。雙擊打開.h文件。
添加 BeginPlay() 函數聲明如下:
當前代碼啥也沒做,但在這章節的后面部分我們可以對它進行修改。
保存.h和.cpp文件,然后回到UE編輯器。在編輯器中,單擊“編譯”按鈕:
如果一切正常,過一段時間,屏幕右下角會彈出一個菜單,顯示編譯完成。
你也可以在Visual Studio中,從解決方案里找到你的項目,單擊右鍵選擇生成(Build)。編譯完成后,回到UE編輯器,更改應該已經同步過來了。
不管什么時候,當我們修改了代碼后,不要忘了編譯項目,否則,我們不會在編輯器看到對應的變化。
關于代碼編譯的更多內容,請訪問https://docs.unrealengine.com/zh-CN/Programming/QuickStart/index.html。
使用UE_LOG打印日志
日志對于輸出游戲內部數據極為重要。使用日志工具,能夠讓你在UE編輯器中的輸出日志(Output Log)小窗口打印信息。
準備
編碼的時候,我們有時想要打印一些調試信息到UE的日志窗口。使用 UE_LOG 宏可以做到這一點。宏是已命名的代碼片段。每當在代碼中使用宏時,在編譯時它就會被宏的內容替換。當我們在開發程序時,為了跟蹤程序運行,日志消息是極其重要且便捷的方法。
你應該有一個代碼文件來完成這個部分。如果這是你第一次使用Unreal進行編碼,那你應先完成先前的內容,然后再繼續。
步驟
在UE編輯器里,依次點擊 窗口(Window)| 開發者工具(Developer Tools)|輸出日志(Output Log),就可以在程序運行時,看到打印的日志信息。
當點擊工具欄上的播放按鈕后,你應該就會看到日志里黃色的文本信息。
為了讓輸出清晰可見,可以先在輸出日志窗口里點擊鼠標右鍵,選擇清除日志(Clear Log)。
總結
UE_LOG宏至少接受三個參數:
- 第一個是日志類別(在此處使用LogTemp表示日志消息為臨時日志)
- 第二個是日志級別(在此處使用Warning來表示日志消息以黃色警告文本打印)
- 第三個是實際輸出的文本
注意TEXT() 宏,它會將實際的文本轉化為UE_LOG需要的格式。對于那些更熟悉編碼的人,他們會知道,當編譯器在Unicode上運行時,TEXT() 宏可將文本提升為Unicode(它以L開頭)。
UE_LOG還可以接受可變參數,就像C語言編程的printf() :
#include "CookBookGameModeBase.h"void ACookBookGameModeBase::BeginPlay() {Super::BeginPlay();// Basic UE_LOG messageUE_LOG(LogTemp,Warning,TEXT("Some warning message."));// UE_LOG message with argumentsint intVar = 5;float floatVar = 4.5f;FString fstringVar = "an fstring variable";UE_LOG(LogTemp, Warning, TEXT("Text,%d %f %s"), intVar, floatVar, *fstringVar); }使用時會發現,FString 類型的變量fstringVar前面有一個星號*,這是因為需要對變量fstringVar解引用,以獲取C風格的TCHAR 指針。這就是獲取指針指向的值。
TCHAR 作為一個變量類型,如果編輯器使用 Unicode 編碼,TCHAR 將解析為wchar_t,否則,TCHAR 將被解析為 char 類型。
如果不再需要打印日志,不要忘了將它們從源碼中刪除。否則,你的日志輸出面板滿滿當當的,要查找需要的內容將變得困難。
FString的格式化輸入
在UE中進行編碼的時候,你可能經常需要從其他類型的變量構造一個字符串。使用FString::Printf或FString::Format函數可以實現。
準備
你應該已經有現成的工程,可以進行UE4 C++ 編碼。通過printf可以將變量放入字符串中。雖然這樣可能有點不太直觀。畢竟不像某些語言(比如JavaScript),將變量串在一起就可以自動轉換成字符串。
步驟
這個部分,我們來看看如何使用兩種不同的方式進行格式化。首先,是FString::Printf():
注意上面的代碼塊是如何像傳統的printf函數一樣使用格式說明符的,使用%s將字符串類型放置到格式化的字符串中,使用%d將整型放置在格式化的字符串中。不同的格式說明對應著不同的類型的變量,可以參看: cppreference.com 。
也可以使用 FString::Format()
使用FString::Format(),就不需要格式說明符了,而是使用簡單的整型和FStringFormatArg類型的TArray來代替。FStringFormatArg可以幫助FString::Format()推斷出放入字符串中的變量類型。
無論使用哪種方法,在調用UE_LOG時,您都將獲得相同的輸出。
總結
以上是生活随笔為你收集整理的UE4开发工具 - COOKBOOK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解Objective-C的meta-c
- 下一篇: 计算机重启打印服务关闭,电脑打印机消失p