เอกสาร·ตัวอย่าง· discord
Flecs.net เป็นเสื้อคลุมระดับสูงสำหรับ Flecs การเชื่อมโยงระดับต่ำกับ C API นั้นรวมอยู่และสร้างขึ้นด้วย bindgen.net ห้องสมุดพื้นเมืองถูกรวบรวมข้ามด้วยชุดเครื่องมือ 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 - พอร์ต C# ระดับสูงของ wrapper C ++
flecs.net.bindings - การผูกระดับต่ำของ c api
flecs.net.native - ห้องสมุดพื้นเมืองที่คอมไพล์ล่วงหน้า
คุณสามารถดาวน์โหลดแพ็คเกจ NuGet และใช้ flecs.net ได้ทันที!
flecs.net (wrapper + bindings + ไลบรารีดั้งเดิม): release | การดีบัก
dotnet add PROJECT package Flecs.NET.Release --version *-*flecs.net.bindings (การผูก + ไลบรารีดั้งเดิม): ปล่อย | การดีบัก
dotnet add PROJECT package Flecs.NET.Bindings.Release --version *-*flecs.net.native (ไลบรารีพื้นเมือง): ปล่อย | การดีบัก
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 มีไลบรารีสแตติกแบบคอมไพล์ precompiled ที่สามารถใช้งานได้เมื่อเปิดใช้งาน 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 Package Registry แพ็คเกจจะถูกอัพโหลดโดยอัตโนมัติในทุกที่มุ่งมั่นไปยังสาขาหลัก
ในการเข้าถึงการพัฒนาสร้างจากโครงการของคุณก่อนอื่นคุณต้องสร้างโทเค็นการเข้าถึงส่วนบุคคลของ GitHub ด้วยการอนุญาต read:packages (ดูการสร้างโทเค็นการเข้าถึงส่วนบุคคล (คลาสสิก))
เมื่อคุณสร้างโทเค็นการเข้าถึงส่วนบุคคลให้เรียกใช้คำสั่งต่อไปนี้เพื่อเพิ่มฟีด GitHub เป็นแหล่งแพ็คเกจใหม่ แทนที่ YOUR_GITHUB_USERNAME ด้วยชื่อผู้ใช้ GitHub ของคุณและ YOUR_GITHUB_TOKEN ด้วยโทเค็นการเข้าถึงส่วนบุคคลของคุณ
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 จะถูกเพิ่มลงในไฟล์ Global nuget.config ของคุณและสามารถอ้างอิงได้โดยโครงการใด ๆ ในเครื่องของคุณ หากต้องการเพิ่มฟีดลงในโครงการ/โซลูชันเดียวให้สร้างไฟล์ 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 "ในการลบฟีด GitHub ออกจากแหล่งแพ็คเกจ NUGET ของคุณให้เรียกใช้คำสั่งต่อไปนี้
dotnet nuget remove source " flecs.net " การกระทำของ GitHub สามารถตรวจสอบความถูกต้องโดยใช้ความลับของ 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" คำเตือน
แพ็คเกจฟีดการพัฒนาอาจถูกลบโดยไม่มีการเตือนเพื่อเพิ่มพื้นที่ว่าง
ในการเรียกใช้โปรแกรมตัวอย่างใด ๆ ให้ใช้ dotnet run และตั้งค่าคุณสมบัติ "ตัวอย่าง" ให้กับเส้นทางของตัวอย่างที่สัมพันธ์กับโครงการ Flecs.NET.Examples แต่ละระดับของเส้นทางจะต้องคั่นด้วยขีดล่าง
ตัวอย่าง :
dotnet run --project src/Flecs.NET.Examples --property:Example=Entities_Basics โคลน repo และมันเป็น submodules
git clone --recursive https://github.com/BeanCheeseBurrito/Flecs.NET.git
cd Flecs.NETเรียกใช้คำสั่งต่อไปนี้ในการแก้ปัญหาเพื่อกู้คืนการพึ่งพาโครงการทั้งหมด
dotnet restoreรวบรวมเสื้อคลุมและไลบรารีพื้นเมือง คอมไพเลอร์ ZIG จะถูกดาวน์โหลดและแคชโดยอัตโนมัติในโฟลเดอร์ Package 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.bindings โดยค่าเริ่มต้น หากจำเป็นคุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์การผูกใหม่
dotnet run --project src/Flecs.NET.BindgenFlecs.net อาศัยการสร้างรหัสเพื่อหลีกเลี่ยงการทำซ้ำรหัสด้วยตนเอง หากการเปลี่ยนแปลงใด ๆ เกิดขึ้นกับโครงการ Flecs.net.codegen คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อเรียกใช้เครื่องกำเนิดรหัสอีกครั้ง ไฟล์ที่สร้างขึ้นจะถูกส่งไปยังโฟลเดอร์นี้
dotnet run --project src/Flecs.NET.Codegen อย่าลังเลที่จะเปิดปัญหาหรือดึงคำขอ ยินดีต้อนรับการมีส่วนร่วมทั้งหมด!
วิธีการมีส่วนร่วม: