文档·示例·不和谐
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 随时打开问题或拉出请求。欢迎所有贡献!
贡献方式: