首页
/
每日頭條
/
科技
/
ue4的藍圖編程介紹
ue4的藍圖編程介紹
更新时间:2024-07-26 05:08:19

  虛幻中的C ! 本文主要介紹如何在虛幻引擎4(UE4)中編寫c 代碼。虛幻引擎中的C 編程十分有趣,入門也很簡單!通常人們會認為虛幻C 是輔助C ,因為虛幻有很多功能可以讓所有人都能更簡單地使用C 。

  在開始之前,你必須已經對C 或另一種編程語言有所認知,我假設你已經有了一些C 經驗,但如果您了解C#、Java或JavaScrip,也會發現有許多相似之處。

  如果你完全沒有編程經驗,那就一目十行、囫囵吞棗的看過去就行了,做到不求甚解就ok。

  在UE4中,你可以編寫标準C 代碼,接下來我們将詳細介紹。

  C 與藍圖 UE4提供了兩種創建新Gameplay元素的方法:C 和藍圖視覺腳本。程序員利用C 即可添加基礎Gameplay系統,然後設計師可基于這些系統進行構建或利用這些系統為某個特定關卡或遊戲本身創建自定義Gameplay。在這些情況下,C 程序員在文本編輯器(如Notepad )或IDE(通常是Microsoft Visual Studio或Apple Xcode)中工作,設計師則在UE4的藍圖編輯器中工作。

  Gameplay API和框架類在這兩個系統中都可以使用,可以單獨使用,但組合使用,互補長短才能發揮出它們真正的作用。那麼到底有何意義呢?這意味着,當程序員使用C 來創建Gameplay構建塊,設計師利用這些塊創建有趣的Gameplay時,引擎就能發揮最大作用。

  言至于此,我們來看看C 程序員為設計師創建構建塊的典型工作流程。在此情況下,我将創建一個類,稍後設計師或程序員可以通過藍圖擴展此類。在該類中,我将創建一些設計師可以設置的屬性,并且我将根據這些屬性派生新值。整個過程使用我們提供的工具和C 宏就可以完成,非常簡單。

  類向導 首先,使用編輯器中的添加c 類來生成稍後将通過藍圖擴展的基本C 類。下圖顯示了向導的第一步,即創建新Actor。

  ue4的藍圖編程介紹(UE4中的C編程簡介)(1)

  選擇基類

  ​

  該流程中的第二步是告訴向導,您已經生成的類的名稱。這是使用默認名稱的第二步。

  ue4的藍圖編程介紹(UE4中的C編程簡介)(2)

  設置類名

  ​

  選擇創建類後,向導會生成文件,并打開你的開發環境,便于你開始編輯,下面是為生成的類定義。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(3)

  頭文件

  ​

  類向導會生成你的類,并提供 BeginPlay 和 Tick 兩個重載方法。BeginPlay 事件告訴你Actor以可運行狀态進入了遊戲。這是啟動類Gameplay邏輯的好位置。Tick 每幀調用一次,使用自上次調用傳遞以來經過的時間。你可以在這裡執行任何重複邏輯。但是,如果你不需要該功能,最好将其移除,這樣對性能有益。如果将其移除,确保移除構造函數中指示應開始發生tick事件的相應性。下面的構造函數就包含所提及的行。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(4)

  源文件

  ​

  讓屬性出現在編輯器中 創建類後,現在讓我們創建一些設計師可以在虛幻編輯器中設置的屬性。将屬性公開給編輯器非常簡單,隻需要使用說明符 UPROPERTY 即可實現。你隻需在屬性聲明的上一行加入 UPROPERTY(EditAnywhere) 即可,如以下類中所示。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(5)

  将屬性公開給編輯器

  ​

  隻要完成上述操作,即可在編輯器中編輯該值。還有更多方法可以控制編輯該值的方式和位置。方法是将更多信息傳遞到 UPROPERTY 說明符。例如,如果你想要m_totalDamage屬性出現在包含相關屬性的某個部分中,可以使用分類功能。具體請參見下面的屬性聲明

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(6)

  屬性分類

  ​

  當用戶想要編輯該屬性時,它現在會出現在傷害(Damage)标題下面,與你已經标記為此類别名稱的任何其他屬性在一起。這是将常用設置放在一起以供設計師編輯的好方法。

  現在,讓我們将同一個屬性公開給藍圖。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(7)

  可讀可寫标示

  ​

  如你所見,有一個說明符可以讓屬性在藍圖圖表中可供讀寫。有一個單獨的說明符 BlueprintReadOnly,如果你希望屬性在藍圖中被視為 常量,可以使用這個選項。

  再繼續以下部分前,我們來向該樣本類添加幾個屬性。已經有一個屬性可以控制該Actor将釋放出的總傷害量,但讓我們更進一步,讓這個傷害随着時間而逐漸釋放出來。下面的代碼添加了一個可以由設計師設置的屬性,以及一個對設計師可見但不能更改的屬性。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(8)

  隻讀标示

  ​

  m_damageTimeInSeconds 是設計師可以修改的屬性。m_damagePerSecond 屬性的值使用設計師的設置計算得出(請參見下一節)。VisibleAnywhere 說明符将該屬性标記為可見,但不可編輯。Transient 說明符意味着,它不會保存或從磁盤加載;它就是一個派生的非持久值,所以沒有必要存儲它。下圖顯示作為類默認值一部分的屬性。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(9)

  界面屬性

  ​

  為了按實例支持設計師設置屬性,還會從給定對象的實例數據加載值。該數據在構造函數之後應用。你可以根據設計師設置值創建默認值,方法是鈎入 PostInitProperties() 調用鍊中。下面示例展示了 m_totalDamage 和 m_damageTimeInSeconds 為設計師指定值的流程。盡管它們是設計師指定的,但你仍可以為它們提供合理的默認值,就像下述示例一樣

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(10)

  設計師指定值之後回調方法

  ​

  這裡是添加了上述 PostInitProperties() 代碼後的屬性視圖。

  ​

  ue4的藍圖編程介紹(UE4中的C編程簡介)(11)

  效果圖

  ​

  到目前為止,我們已經了解了c 對象初始化以及每一幀的接口,還有成員變量如何公開到虛幻編輯器,通過以上學習可以說已經成功入門虛幻c 了,加油!

  ,

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
請問手機怎麼快速充電
請問手機怎麼快速充電
請問手機怎麼快速充電?打開飛行模式:在充電的時候,可以打開手機的飛行模式,這樣會停止網絡信号,不能打電話發信息上網,給手機足夠的空間,這樣充電的速度也就大大提升了,等到電充足夠了再把飛行模式關閉即可,我來為大家科普一下關于請問手機怎麼快速充...
2024-07-26
excel怎麼查看重複值
excel怎麼查看重複值
本文和大家分享如何判斷表格中的數據是否重複。本文分為兩部分:第一部分介紹根據單列數據判斷是否重複;第二部分介紹根據多列數據判斷是否重複。一、根據單列數據判斷是否重複如下圖所示,B1:B10為一份名單表,要求判斷是否有重複出現的姓名。情形一:...
2024-07-26
uv膠無影膠區别
uv膠無影膠區别
玻璃光學無影膠(UV膠)用來粘接玻璃效果非常好,不僅能實現完全透明,粘接強度有保證,玻璃光學無影膠(UV膠)實現了透明玻璃的美觀性,還具有高透光性和抗變黃性,那麼玻璃光學無影膠(UV膠)具體應用點有哪些?玻璃光學無影膠(UV膠)應用點主要有...
2024-07-26
酷狗音樂裡面怎麼設置鈴聲的選項
酷狗音樂裡面怎麼設置鈴聲的選項
酷狗音樂裡面怎麼設置鈴聲的選項?國慶假期就要來了,如何做出遊路上最靓的仔?先把手機鈴聲換成《孤勇者》、或者每年國慶必火一遍的《萬疆》吧!曾在按鍵手機、翻蓋手機時代稱霸的手機鈴聲,其實一直沒有淡出人們的日常,特别是在網絡熱歌層出不窮的當下,為...
2024-07-26
蘋果平闆電腦網速慢怎麼辦
蘋果平闆電腦網速慢怎麼辦
蘋果平闆電腦網速慢怎麼辦?上網慢可能是網速慢造成的,可以重啟路由器,我來為大家講解一下關于蘋果平闆電腦網速慢怎麼辦?跟着小編一起來看一看吧!蘋果平闆電腦網速慢怎麼辦上網慢可能是網速慢造成的,可以重啟路由器。可能是病毒木馬原因導緻導緻網速慢,...
2024-07-26
Copyright 2023-2024 - www.tftnews.com All Rights Reserved