0.1.0 • Published 11 months ago

com.kagekirin.unitymathematics.tables.schemas v0.1.0

Weekly downloads
-
License
CC0
Repository
github
Last release
11 months ago

unitymathematics.tables.schemas (com.kagekirin.unitymathematics.tables.schemas) - 0.1.0

Repacked from NuGet using NuGettier v0.4.16+c6c6e46794fb522e40cf28c5ceccabe0607359f5

FlatBuffer schemas for serializable tables wrapping Unity.Mathematics types


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">
    <!-- compile UnityMathematics.fbs -->
    <FlatSharpSchema Include="$(UnityMathematics_Schemas)\content\**\*.fbs">
      <IncludePath>$(UnityMathematics_Schemas)\content</IncludePath>
    </FlatSharpSchema>

    <!-- compile your own schemas -->
    <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">
    <!-- compile your own 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.

0.1.0

11 months ago

0.0.9

11 months ago

0.0.8

11 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.7

11 months ago

0.0.6

11 months ago

0.0.3

1 year ago