文檔·示例·不和諧
Flecs.net是Flecs的高級包裝紙。將與C API的低級結合包括在內,並用Bindgen.net生成。本地庫與Vezel-Dev的曲折工具集進行了交叉編譯。
// Copy, paste, and run in a .NET project!
using Flecs . NET . Core ;
using World ecs = World . Create ( ) ;
Entity entity = ecs . Entity ( )
. Set ( new Position ( 10 , 20 ) )
. Set ( new Velocity ( 1 , 2 ) ) ;
ecs . Each ( ( ref Position p , ref Velocity v ) =>
{
p . X += v . X ;
p . Y += v . Y ;
} ) ;
public record struct Position ( float X , float Y ) ;
public record struct Velocity ( float X , float Y ) ; FLECS.NET-高級C#C ++包裝器的端口
FLECS.NET.BINDINGS- C API的低級綁定
flecs.net.native-預編譯本機庫
您可以下載Nuget軟件包並立即使用FLECS.NET !
FLECS.NET(包裝器 +綁定 +本機庫):釋放|調試
dotnet add PROJECT package Flecs.NET.Release --version *-*FLECS.NET.BINDINGS(綁定 +本機庫):釋放|調試
dotnet add PROJECT package Flecs.NET.Bindings.Release --version *-*FLECS.NET.NATED(本機庫):釋放|調試
dotnet add PROJECT package Flecs.NET.Native.Release --version *-*FLECS.NET提供Nuget的發行版和調試包。建議在開發時使用調試軟件包,因為它們包括檢查API不正確的檢查。要根據您的構建配置將它們都包括在項目中,請使用下面的軟件包參考。最新的穩定或預發行版將添加到您的項目中。
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " Condition = " '$(Configuration)' == 'Debug' " />
< PackageReference Include = " Flecs.NET.Release " Version = " *-* " Condition = " '$(Configuration)' == 'Release' " />
</ ItemGroup >
</ Project >FLECS.NET提供預編譯的靜態庫,可在啟用PublishAOT時使用。要啟用靜態鏈接,請在屬性組中添加<FlecsStaticLink>true</FlecsStaticLink> 。為了防止共享庫被複製到輸出目錄,請在您的軟件包參考中添加ExcludeAssets="native" 。
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< PublishAot >true</ PublishAot >
< FlecsStaticLink >true</ FlecsStaticLink >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " ExcludeAssets = " native " />
</ ItemGroup >
</ Project >對於更多最新軟件包,可以在GitHub軟件包註冊表中提供開發構建。軟件包會自動上傳到主分支的每個提交。
要通過您的項目訪問開發構建,您首先需要使用read:packages權限創建GitHub個人訪問令牌。 (請參閱創建個人訪問令牌(經典))
創建個人訪問令牌後,請運行以下命令將GitHub feed添加為新軟件包。用您的YOUR_GITHUB_TOKEN用戶名替換YOUR_GITHUB_USERNAME和您的個人訪問令牌。
dotnet nuget add source --name " flecs.net " --username " YOUR_GITHUB_USERNAME " --password " YOUR_GITHUB_TOKEN " --store-password-in-clear-text " https://nuget.pkg.github.com/BeanCheeseBurrito/index.json "現在,您可以從GitHub提要中引用任何包裝!
dotnet add PROJECT package Flecs.NET.Release --version *-build.* < Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-build.* " />
</ ItemGroup >
</ Project >默認情況下,github feed將添加到您的global nuget.config文件中,並且可以通過計算機上的任何項目引用。如果希望將feed添加到單個項目/解決方案中,請在項目/解決方案目錄的根部創建一個nuget.config文件,然後使用--configfile選項運行以下命令。
dotnet nuget add source --configfile " ./nuget.config " --name " flecs.net " --username " YOUR_GITHUB_USERNAME " --password " YOUR_GITHUB_TOKEN " --store-password-in-clear-text " https://nuget.pkg.github.com/BeanCheeseBurrito/index.json "要從Nuget軟件包源中刪除GitHub feed,請運行以下命令。
dotnet nuget remove source " flecs.net "可以使用GITHUB_TOKEN Secret驗證GitHub操作工作流程。
- name : Add GitHub source
run : dotnet nuget add source --name "flecs.net" --username "USERNAME" --password "${{ secrets.GITHUB_TOKEN }}" --store-password-in-clear-text "https://nuget.pkg.github.com/BeanCheeseBurrito/index.json" 警告
開發飼料軟件包可以在沒有警告的情況下刪除以釋放空間。
要運行任何示例程序,請使用dotnet run並將“示例”屬性設置為相對於Flecs.NET.Examples項目的示例路徑。路徑的每個級別必須通過下劃線分開。
例子:
dotnet run --project src/Flecs.NET.Examples --property:Example=Entities_Basics 克隆倉庫及其分類。
git clone --recursive https://github.com/BeanCheeseBurrito/Flecs.NET.git
cd Flecs.NET在解決方案上運行以下命令以還原所有項目依賴關係。
dotnet restore編譯包裝紙和本地庫。 ZIG編譯器將自動下載並在您的本地Nuget軟件包文件夾中進行緩存。本機庫將用於Linux,MacOS和Windows的交叉編譯。
dotnet build參考項目並導入本地庫。現在,您應該可以使用項目中的FLECS.NET 。
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< OutputType >Exe</ OutputType >
< TargetFramework >net8.0</ TargetFramework >
</ PropertyGroup >
< ItemGroup >
< ProjectReference Include = " PATH/Flecs.NET/src/Flecs.NET/Flecs.NET.csproj " />
</ ItemGroup >
</ Project >默認情況下,與FLECS C API的低水平結合已預先生成,並將其包含在flecs.net.net。結合項目中。如果需要,您可以運行以下命令來再生綁定文件。
dotnet run --project src/Flecs.NET.BindgenFLECS.NET依靠代碼生成來避免手動代碼重複。如果對FLECs.net.codegen項目進行了任何更改,則可以運行以下命令來重新運行代碼生成器。生成的文件將輸出此文件夾。
dotnet run --project src/Flecs.NET.Codegen 隨時打開問題或拉出請求。歡迎所有貢獻!
貢獻方式: