Dokumente · Beispiele · Zwietracht
Flecs.net ist eine hochrangige Verpackung für Flecs. Bindungen mit niedriger Ebene an die C-API werden mit bindgen.net enthalten und erzeugt. Native Bibliotheken sind mit Vig Toolsets von Vig-Dev von Vigel-Dev zusammengeklebt.
// 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 - High -Level -C# -Port der C ++ - Wrapper
Flecs.net.bindings - niedrige Bindungen der C API
Flecs.net.Native - Vorkompilierte native Bibliotheken
Sie können das Nuget -Paket herunterladen und sofort Flecs.net verwenden!
Flecs.net (Wrapper + Bindings + native Bibliotheken): Release | Debuggen
dotnet add PROJECT package Flecs.NET.Release --version *-*Flecs.net.bindings (Bindungen + native Bibliotheken): Release | Debuggen
dotnet add PROJECT package Flecs.NET.Bindings.Release --version *-*Flecs.net.Native (native Bibliotheken): Release | Debuggen
dotnet add PROJECT package Flecs.NET.Native.Release --version *-*Flecs.net bietet sowohl Release- als auch Debugg -Pakete für Nuget. Es wird empfohlen, die Debug -Pakete bei der Entwicklung zu verwenden, da diese Überprüfungen für die falsche Verwendung der API enthalten. Verwenden Sie die folgenden Paketreferenzen, um beide in Ihrem Projekt basierend auf Ihrer Build -Konfiguration aufzunehmen. Die neuesten stabilen oder prerelease -Versionen werden Ihrem Projekt hinzugefügt.
< 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 bietet vorkompilierte statische Bibliotheken, die verwendet werden können, wenn PublishAOT aktiviert ist. Um eine statische Verknüpfung zu aktivieren, fügen Sie <FlecsStaticLink>true</FlecsStaticLink> zu einer Eigenschaftsgruppe hinzu. Um zu verhindern, dass freigegebene Bibliotheken in das Ausgabesverzeichnis kopiert werden, fügen Sie Ihre Paketreferenz ExcludeAssets="native" aus.
< Project Sdk = " Microsoft.NET.Sdk " >
< PropertyGroup >
< PublishAot >true</ PublishAot >
< FlecsStaticLink >true</ FlecsStaticLink >
</ PropertyGroup >
< ItemGroup >
< PackageReference Include = " Flecs.NET.Debug " Version = " *-* " ExcludeAssets = " native " />
</ ItemGroup >
</ Project >Für aktuellere Pakete finden Sie in der GitHub-Paketregistrierung Entwicklungsbauten. Pakete werden automatisch in jedem Commit to the Main Branch hochgeladen.
Um aus Ihrem Projekt auf Entwicklungsaufbaue zuzugreifen, müssen Sie zunächst ein GitHub Personal Access -Token mit der Erlaubnis read:packages erstellen. (Siehe Erstellen eines persönlichen Zugangstokens (klassisch))
Wenn Sie ein persönliches Zugriffs -Token erstellt haben, führen Sie den folgenden Befehl aus, um den GitHub -Feed als neue Paketquelle hinzuzufügen. Ersetzen Sie YOUR_GITHUB_USERNAME durch Ihren Github -Benutzernamen und YOUR_GITHUB_TOKEN durch Ihren persönlichen Zugriffs -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 "Sie können jetzt auf jedes Paket aus dem Github -Feed verweisen!
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 > Standardmäßig wird der GitHub -Feed zu Ihrer globalen nuget.config -Datei hinzugefügt und kann durch jedes Projekt auf Ihrem Computer verwiesen werden. Wenn Sie den Feed zu einem einzelnen Projekt/einer einzelnen Lösung hinzufügen möchten, erstellen Sie eine nuget.config -Datei zum Stammpunkt Ihres Projekt-/Lösungsverzeichnisses und führen Sie den folgenden Befehl mit der Option --configfile aus.
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 "Führen Sie den folgenden Befehl aus, um den Github -Feed aus Ihren Nuget -Paketquellen zu entfernen.
dotnet nuget remove source " flecs.net " GitHub -Aktionen Workflows können mit dem GITHUB_TOKEN -Geheimnis authentifiziert werden.
- 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" Warnung
Development -Feed -Pakete können ohne Vorwarnung gelöscht werden, Platz freizugeben.
Verwenden Sie zum Ausführen eines der Beispielprogramme, verwenden Sie dotnet run und setzen Sie die Eigenschaft "Beispiel" auf den Pfad des Beispiels relativ zum Projekt Flecs.NET.Examples . Jede Ebene des Pfades muss durch einen Unterstrich getrennt werden.
Beispiel :
dotnet run --project src/Flecs.NET.Examples --property:Example=Entities_Basics Klonen Sie das Repo und es sind Submodulen.
git clone --recursive https://github.com/BeanCheeseBurrito/Flecs.NET.git
cd Flecs.NETFühren Sie den folgenden Befehl in der Lösung aus, um alle Projektabhängigkeiten wiederherzustellen.
dotnet restoreKompilieren Sie die Wrapper und die nativen Bibliotheken. Der Zick -Compiler wird automatisch in Ihrem lokalen Nuget -Paketordner heruntergeladen und zwischengespeichert. Native Bibliotheken werden für Linux, MacOS und Windows kompiliert.
dotnet buildVerweisen Sie auf das Projekt und importieren Sie die nativen Bibliotheken. Sie sollten jetzt in der Lage sein, Flecs.net aus Ihrem Projekt zu verwenden.
< 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 >Bindungen mit niedriger Ebene an die Flecs C API werden standardmäßig vorgeneriert und in das Projekt Flecs.net.bindings enthalten. Bei Bedarf können Sie den folgenden Befehl ausführen, um die Bindungsdatei zu regenerieren.
dotnet run --project src/Flecs.NET.BindgenFlecs.net stützt sich auf die Codegenerierung, um eine manuelle Code -Duplikation zu vermeiden. Wenn Änderungen am Projekt flecs.net.Codegen vorgenommen werden, können Sie den folgenden Befehl ausführen, um die Codegeneratoren erneut zu übermitteln. Die generierten Dateien werden in diesen Ordner ausgegeben.
dotnet run --project src/Flecs.NET.Codegen Fühlen Sie sich frei, ein Problem zu öffnen oder eine Anfrage zu ziehen. Alle Beiträge sind willkommen!
Möglichkeiten zum Beitrag: