Docs · Contoh · Perselisihan
FLECS.NET adalah pembungkus tingkat tinggi untuk FLEC. Ikatan tingkat rendah ke API C disertakan dan dihasilkan dengan bindgen.net. Perpustakaan asli dikompilasi silang dengan alat-alat zig 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 - Port C# tingkat tinggi dari pembungkus C ++
Flecs.net.Bindings - Ikatan tingkat rendah dari API C
FLECS.NET.Native - Perpustakaan asli yang dikompilasi
Anda dapat mengunduh paket Nuget dan menggunakan flecs.net segera!
FLECS.NET (Pembungkus + Bindings + Perpustakaan Asli): Rilis | Debug
dotnet add PROJECT package Flecs.NET.Release --version *-*Flecs.net.bindings (binding + perpustakaan asli): rilis | Debug
dotnet add PROJECT package Flecs.NET.Bindings.Release --version *-*Flecs.net.native (Perpustakaan Asli): Rilis | Debug
dotnet add PROJECT package Flecs.NET.Native.Release --version *-*FLECS.NET menyediakan paket rilis dan debug untuk Nuget. Direkomendasikan agar paket debug digunakan saat berkembang karena mereka menyertakan pemeriksaan untuk penggunaan API yang salah. Untuk memasukkan keduanya dalam proyek Anda berdasarkan konfigurasi build Anda, gunakan referensi paket di bawah ini. Versi stabil atau prerlease terbaru akan ditambahkan ke proyek Anda.
< 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 menyediakan perpustakaan statis yang dikompilasi yang dapat digunakan saat PublishAOT diaktifkan. Untuk mengaktifkan tautan statis, tambahkan <FlecsStaticLink>true</FlecsStaticLink> ke grup properti. Untuk mencegah perpustakaan bersama tidak disalin ke direktori output, tambahkan ExcludeAssets="native" ke referensi paket Anda.
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< PublishAot >true</ PublishAot >
< FlecsStaticLink >true</ FlecsStaticLink >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " ExcludeAssets = " native " />
</ ItemGroup >
</ Project >Untuk paket terbaru, pembangunan pembangunan tersedia di Registry Paket GitHub. Paket secara otomatis diunggah pada setiap komit ke cabang utama.
Untuk mengakses pembangunan pengembangan dari proyek Anda, Anda pertama -tama harus membuat token akses pribadi Github dengan izin read:packages . (Lihat Membuat Token Akses Pribadi (Klasik))
Setelah Anda membuat token akses pribadi, jalankan perintah berikut untuk menambahkan umpan GitHub sebagai sumber paket baru. Ganti YOUR_GITHUB_USERNAME dengan nama pengguna GitHub Anda dan YOUR_GITHUB_TOKEN dengan token akses pribadi Anda.
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 "Anda sekarang dapat merujuk paket apa pun dari feed 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 > Secara default, umpan GitHub akan ditambahkan ke file nuget.config global Anda dan dapat direferensikan oleh proyek apa pun di mesin Anda. Jika ingin menambahkan feed ke satu proyek/solusi, buat file nuget.config di root direktori proyek/solusi Anda dan jalankan perintah berikut dengan opsi --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 "Untuk menghapus umpan GitHub dari sumber paket Nuget Anda, jalankan perintah berikut.
dotnet nuget remove source " flecs.net " Alur kerja tindakan GitHub dapat diautentikasi menggunakan rahasia GITHUB_TOKEN .
- 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" Peringatan
Paket pakan pengembangan dapat dihapus tanpa peringatan untuk membebaskan ruang.
Untuk menjalankan salah satu program contoh, gunakan dotnet run dan atur properti "contoh" ke jalur contoh relatif terhadap proyek Flecs.NET.Examples . Setiap level jalur harus dipisahkan oleh garis bawah.
Contoh :
dotnet run --project src/Flecs.NET.Examples --property:Example=Entities_Basics Kloning repo dan submodules.
git clone --recursive https://github.com/BeanCheeseBurrito/Flecs.NET.git
cd Flecs.NETJalankan perintah berikut pada solusi untuk mengembalikan semua dependensi proyek.
dotnet restoreKompilasi pembungkus dan perpustakaan asli. Kompiler zig akan secara otomatis diunduh dan di -cache di folder paket nuget lokal Anda. Perpustakaan asli akan dikompilasi silang untuk Linux, MacOS, dan Windows.
dotnet buildReferensi proyek dan impor perpustakaan asli. Anda sekarang harus dapat menggunakan flecs.net dari proyek Anda.
< 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 >Ikatan tingkat rendah ke FLECS C API telah dihasilkan sebelumnya dan termasuk dalam proyek FLECS.NET.Bindings secara default. Jika diperlukan, Anda dapat menjalankan perintah berikut untuk meregenerasi file binding.
dotnet run --project src/Flecs.NET.BindgenFlecs.net bergantung pada pembuatan kode untuk menghindari duplikasi kode manual. Jika ada perubahan yang dilakukan pada proyek FLECS.NET.Codegen, Anda dapat menjalankan perintah berikut untuk menjalankan kembali generator kode. File yang dihasilkan akan output ke folder ini.
dotnet run --project src/Flecs.NET.Codegen Jangan ragu untuk membuka masalah atau menarik permintaan. Semua kontribusi dipersilakan!
Cara berkontribusi: