UnrealSharp: 一個可以讓你在UnrealEngine5中採用C# 12和.NET 8.0開發的外掛

bodong發表於2024-03-09

寫著玩的,就當學習Unreal練手的玩意兒了。

主要特性:

  • 支援.NET 6.0~.NET 8.0[預設為.NET 8.0],支援C#12
  • 支援在 C# 中建立新的 Unreal 類、Unreal 結構、Unreal 列舉等
  • 支援為 C# 類建立新的 Unreal 屬性、Unreal 函式和 Unreal 多播委託。
  • 支援C#類繼承Unreal C++類,這意味著您可以在C#中實現自己的UObject、UActorComponent和AActor子類
  • 支援在 C# 類中重寫 C++ 事件函式
  • 支援從虛幻藍圖訪問所有 C# 類、結構、列舉、方法、委託等
  • 支援虛幻藍圖類繼承 C# 類並覆蓋藍圖中的 C# 事件
  • 支援為Unreal C++或Unreal Blueprint自動生成相應的C#繫結程式碼[可選]。只要是Unreal的類、結構體、列舉、函式等可以在藍圖中訪問的,幾乎都可以在C#中訪問。
  • 支援透過Visual Studio或Rider除錯C#程式碼,支援C++和C#同時除錯
  • 大多數 C++ API 都會自動生成為基於 C# 函式指標的版本,以提高呼叫速度。
  • 這個基於C#函式指標的互動式函式框架是公開的。如有必要,您可以向框架註冊新的 C++ API。
  • 自動調整 Unreal 和 C# 記憶體管理和物件生命週期,因此您幾乎不需要自己處理任何事情。
  • C#繫結程式碼的風格與Unreal C++保持一致,呼叫這些C++介面和在C++中幾乎沒有區別。
  • AOT友好,從最初的設計就考慮到了對AOT的支援。
  • 純外掛設計,無需修改任何引擎原始碼
  • 除了框架預留的三個特殊專案外,您還可以新增任意數量的C#專案,並且它還支援在這些專案中實現相應的Unreal型別。

程式碼丟Github了,有興趣的可以去拉下來耍耍:https://github.com/bodong1987/UnrealSharp

另外也有一些遺留問題和挑戰,有興趣的朋友不妨去看看:

https://github.com/bodong1987/UnrealSharp/blob/main/Docs/TodoList.md

我給待解決的一些問題簡單個人主觀的評了一些星級,歡迎來挑戰。

相關文章