Technical Tools & Systems
Systems and utilities used across my projects.
Dynamic Path System
Procedural curves from remeshed rough paths
Nodes define a rough Path; the system Remeshes it into a smooth curve and Renders it with an optimized triangle count.
Tweening Equations
Configurable tweening functions for smooth UI & motion animations
Six core curves (Linear, Ease In, Ease Out, Ease In-Out, Overshoot, Slingshot) with interactive previews.
Unity Extension Methods
Small helpers for cleaner, safer C# in Unity
Utility methods grouped by type for common Unity gaps: Transform layer utilities, Vector math helpers, and geometry checks.
State Machine Framework
Composable states and transitions for gameplay flow
A lightweight, inspector-friendly state machine built from MonoBehaviours. States live as children of the StateMachine, with pluggable transitions like time-based DurationTransition.
Menu Controller
Stack-based page navigation for UI menus
A simple navigation stack for Unity menus. MenuController manages MenuPage children, pushing and popping pages with Show / Hide hooks and optional callbacks.
Collider Events
Event-based wrappers for 3D and 2D physics callbacks
Thin components that expose Unity collision and trigger callbacks as C# events. Makes it easy to listen for physics interactions without subclassing MonoBehaviour everywhere.
Importing BMG Tools Into Your Project
- In Unity, open the Package Manager from Window → Package Manager.
- Click the + button in the top-left corner of the Package Manager window and select Add package from git URL…
- Paste the following Git URL:
https://github.com/echeung1008/game-development-tools.git - Click Add. Unity will fetch and import the package automatically.
- Once imported, the tools will appear under
Packages/BMG Tools/in the Project window.
You can selectively include only the folders or scripts you need by referencing them directly from the Package Manager.