CultLib/packages/cultmath/unity/org.gamecult.cultmath/README.md
Meta Vens 23cc86c4e9 Ship CultMath 0.2.0 to Unity with a UnityEngine conversion bridge
- Bump GameCult.Math and org.gamecult.cultmath to 0.2.0; the CultCache
  Unity tools package now depends on cultmath 0.2.0.
- Rebuild the tracked netstandard2.1 CultMath.dll/pdb with the builder's
  deterministic command; build-unity-package.ps1 verifies it byte-for-byte.
- Add Runtime/UnityBridge (CultMath.UnityBridge asmdef) with ToCultMath /
  ToUnity / ToColor extension methods for Vector2/3/4, Vector2Int/3Int,
  Quaternion and Color. C# only admits conversion operators on the source
  or target type, and the core DLL stays engine-free.
- The builder admits exactly that one bridge assembly: it must reference
  UnityEngine and CultMath.dll, and no core source may be compiled in the
  package.
- Sync the Unity copy of CultMath.hlsl and the third-party notice.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:30:00 +02:00

1.5 KiB

CultMath for Unity

This is CultMath's Unity 2021.3-compatible Git-UPM surface. It contains the precompiled CultMath.dll, portable symbols, the numeric Shaders/CultMath.hlsl mirror, and the CultMath.UnityBridge assembly.

CultMath.UnityBridge is the only C# source Unity compiles here. It holds the UnityEngine conversions the engine-free core cannot declare: ToCultMath() on Vector2/3/4, Vector2Int/3Int, Quaternion, and Color; ToUnity() on float2/3/4, int2/3, and quaternion; ToColor() on float4. C# only admits conversion operators on the source or target type, so these are extension methods rather than implicit casts. Import CultMath.UnityBridge to use them.

Unity does not compile CultMath's repository source tree. That source uses the current C# language and remains owned by the normal .NET project. The package imports only the tracked auto-referenced precompiled assembly, so consumers do not need csc.rsp language overrides or an asmdef propagation shim.

Build and inspect the package from the repository root:

.\scripts\build-unity-package.ps1

The builder fresh-builds CultMath for netstandard2.1, verifies the tracked DLL/PDB and stable Unity metadata, and stages an inspectable package under artifacts/unity/org.gamecult.cultmath.

Consume the repository package with:

"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath"

Production consumers should pin that URL to a commit or release tag.