UnityMathematics.Schemas 0.0.3

dotnet add package UnityMathematics.Schemas --version 0.0.3                
NuGet\Install-Package UnityMathematics.Schemas -Version 0.0.3                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="UnityMathematics.Schemas" Version="0.0.3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add UnityMathematics.Schemas --version 0.0.3                
#r "nuget: UnityMathematics.Schemas, 0.0.3"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install UnityMathematics.Schemas as a Cake Addin
#addin nuget:?package=UnityMathematics.Schemas&version=0.0.3

// Install UnityMathematics.Schemas as a Cake Tool
#tool nuget:?package=UnityMathematics.Schemas&version=0.0.3                

Logo Unity.Mathematics.Schemas

This repo consists of FlatBuffer schemas that are compiled for C#/.NET with FlatSharp.

The main schema, Unity.Mathematics.fbs defines FlatBuffer structures that are directly compatible to their eponymous C# structures defined by the Unity.Mathematics assembly.

The supplementary schema, Unity.Mathematics.Tables.fbs defines FlatBuffer tables containing single values of arrays of the aforementationed structures that can be de/serialialized. This schema is mostly intended for usage by the unit tests, and as an integration example.

⚡ tl;dr or I just want to fetch the correct dependency

dotnet CLI

dotnet add package UnityMathematics.Schemas --version x.y.z

Directory.Packages.props

  <ItemGroup>
    <PackageVersion Include="UnityMathematics.Schemas" Version="x.y.z" />
  </ItemGroup>

Schema only (i.e. for integration and recompilation by local project)

  <ItemGroup Label="dependencies">
    <PackageReference Include="UnityMathematics.Schemas" GeneratePathProperty="true">
      <IncludeAssets>contentfiles</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup Label="schemas">
    
    <FlatSharpSchema Include="$(UnityMathematics_Schemas)\content\**\*.fbs">
      <IncludePath>$(UnityMathematics_Schemas)\content</IncludePath>
    </FlatSharpSchema>

    
    <FlatSharpSchema Include="$(MSBuildThisFileDirectory)\**\*.fbs">
      <IncludePath>$(UnityMathematics_Schemas)\content</IncludePath>
    </FlatSharpSchema>
  </ItemGroup>

Runtime only (i.e. for integration by local project, without recompilation)

  <ItemGroup Label="dependencies">
    <PackageReference Include="UnityMathematics.Schemas" />
  </ItemGroup>

Schema and Runtime (i.e. for inclusion by local schema, without recompilation of the schema itself)

  <ItemGroup Label="dependencies">
    <PackageReference Include="UnityMathematics.Schemas" GeneratePathProperty="true">
      <IncludeAssets>all</IncludeAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup Label="schemas">
    
    <FlatSharpSchema Include="$(MSBuildThisFileDirectory)\**\*.fbs">
      <IncludePath>$(UnityMathematics_Schemas)\content</IncludePath>
    </FlatSharpSchema>
  </ItemGroup>

  <PropertyGroup Label="FlatSharp compiler configuration">
    <FlatSharpInputFilesOnly>true</FlatSharpInputFilesOnly>
  </PropertyGroup>

For further information, please refer to the FlatSharp compiler documentation.

🔧 Schema usage

Define your types using the same namespace as you would in C#.

include "Unity.Mathematics.fbs";

namespace Example;

struct Transform {
  position: Unity.Mathematics.float3;
  rotation: Unity.Mathematics.quaternion;
  scale: Unity.Mathematics.float3;
}

table Mesh {
  transform: Transform (required);
  vertices: [Unity.Mathematics.float3] (required);
  normals: [Unity.Mathematics.float3] (required);
  uvs: [Unity.Mathematics.float2] (required);
  indices: [short] (required);
  //...
}

table ParticleEffect {
  transform: Transform (required);
  vertices: [Unity.Mathematics.float3] (required);
}

🤝 Collaborate with My Project

PRs are welcome.
Please refer to COLLABORATION.md for more details.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.3 69 1/12/2025
0.0.2 60 1/12/2025
0.0.1 65 1/12/2025

CHANGELOG.md