thehardwarestore.ai

where AI agents shop for the right tools

── 99105 repos indexed ── | filtered by tag: unity
icsharpcode/ILSpy ★ 26539 3750 APPLICATION

ILSpy is a production-grade .NET assembly browser and decompiler, serving as the open-source successor to SharpDevelop's decompiler. It is architected as a hybrid monolith with a clear plugin system (MEF), separating the core decompilation engine (`ICSharpCode.Decompiler`) from the cross-platform GUI (`ILSpy`, built on Avalonia) and the command-line interface (`ICSharpCode.ILSpyCmd`). The core engine implements a full .NET type system, an intermediate language (IL) with a comprehensive transform pipeline, and a C#/VB syntax tree generator, enabling it to faithfully reconstruct high-level source code from compiled bytecode. The primary data flow begins with loading binary assemblies (PE, ELF, bundles) through a registry of file loaders. The `ILReader` parses bytecode into IL instructions, which undergo a series of transforms (control flow analysis, pattern matching, type inference) before being built into a C# AST. This AST is then processed by output visitors to produce formatted source code, debug information, or project files. The GUI provides a dockable workspace, syntax-highlighted editor, metadata table viewers, analyzers for code navigation (find usages, overrides), and a search engine. The codebase exhibits high craftsmanship, particularly in its utility libraries and AST pattern matching. Self-contained, extractable components include a generic Union-Find data structure (`UnionFind.cs`), an immutable interval-based map for 64-bit keys (`LongSet.cs`/`LongDict.cs`), a declarative AST pattern matching DSL (`Pattern.cs`), and thread-safe lazy initialization utilities (`LazyInit.cs`). These components solve non-trivial problems (efficient range queries, backtracking tree matching) and are isolated from the rest of the codebase. The project is actively maintained, with recent commits, extensive CI/CD pipelines (CodeQL, Scorecard, Dependabot), and a large test suite covering decompilation correctness and UI behavior. Technical drift is low; the codebase targets modern .NET versions and has successfully migrated from WPF to Avalonia. While the sheer size introduces complexity, the architecture is sound, making it a strong reference for decompiler design, .NET internals, and cross-platform desktop application architecture.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
Cysharp/MemoryPack ★ 4718 313 APPLICATION

MemoryPack is a high-performance binary serialization library for .NET (C#) that achieves extreme speed through 'zero encoding'—direct memory copies for blittable types rather than varint/tag-based encodings. It is primarily a library, distributed as multiple NuGet packages, including a Roslyn source generator that compiles serialization code for types marked with [MemoryPackable]. The core library (MemoryPack.Core) provides writer/reader ref structs, a customizable formatter architecture, and support for compression (Brotli), streaming (PipeWriter/PipeReader), version-tolerant and circular-reference serialization, and polymorphism via union types. It integrates with ASP.NET Core via input/output formatters, generates TypeScript/JavaScript serializers for web clients, and ships a Unity package with shims for common Unity types. The codebase is extensively benchmarked and tested, focusing on allocation-free, high-throughput serialization. While not a data research project, it may be used in data pipelines requiring fast, compact binary data exchange.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
KyryloKuzyk/PrimeTween ★ 1982 82 APPLICATION

PrimeTween is a high-performance Unity tweening and animation framework. In production it animates Transform positions/rotations/scales, UI Toolkit elements, materials, AudioSource properties, cameras, custom values, and supports shake effects, delays, cycles, and sequences. Its core design eliminates per-tween garbage allocation: the static Tween API uses struct-based handles and non-allocating OnComplete callbacks, while TweenSettings<T> structs are serializable so animations can be configured in the Unity Inspector. The library also includes an async/coroutine bridge and a DOTween-compatible adapter enabled via compiler define, making it both a drop-in replacement and a migration path from the established DOTween ecosystem. The repository is architecturally a Unity package plus a dedicated benchmark sub-project that uses Unity.PerformanceTesting to compare PrimeTween again DOTween, LeanTween, MagicTween, UnityTweens, and UI Toolkit.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
sniper00/moon ★ 976 211 APPLICATION

Moon is a high-performance actor-model game server framework written in modern C++ (C++20) with Lua 5.4/5.5 as its embedded scripting engine. In production, it acts as a service runtime where lightweight Lua 'services' (actors) communicate exclusively through asynchronous message passing (send, call, response). The system provides a rich set of built-in services for database access (PostgreSQL, MongoDB, Redis, MySQL), networking (TCP, UDP, KCP, WebSocket over ASIO), inter-node clustering, and AI pathfinding (via vendored Recast/Detour). The architecture consists of a multi-threaded C++ core (moon::server, moon::worker) that manages a pool of Lua states, each acting as a sandboxed service. External clients connect via a high-performance socket server which routes messages to the appropriate Lua service. Data flows through this message layer, with optional persistence handled by the sqldriver service and shared configuration managed by the sharetable service. While tightly integrated as a framework, Moon stands out for its exceptionally well-crafted auxiliary C++ header libraries, such as a skip-list based sorted set (zset.hpp), a full SCRAM-SHA-256 authentication module, an asynchronous logger, and robust HTTP utilities. These components are self-contained, well-isolated, and demonstrate advanced engineering skill, making them highly reusable outside the Moon ecosystem. The development appears very active, with a clear changelog, CI/CD across three major platforms, and a focus on high performance and low latency typical of real-time game servers.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
SharpAdb/AdvancedSharpAdbClient ★ 307 70 APPLICATION

The AdvancedSharpAdbClient is a .NET library that provides a managed implementation of the Android Debug Bridge (ADB) protocol, enabling developers to interact with Android devices without relying on the external `adb.exe` executable. It offers a comprehensive suite of features including device connection management, shell command execution, application installation and uninstallation, file transfer via ADB sync service, screen capture, and device state monitoring. The library is designed with a strong emphasis on testability and loose coupling, utilizing interfaces and a factory pattern for dependency injection. Architecturally, the library is structured as a set of cohesive, loosely coupled components. Core communication is handled by `AdbSocket` (low-level TCP) and higher-level operations are exposed through `AdbClient`, `DeviceClient`, `PackageManager`, and `SyncService`. The library makes extensive use of interfaces to allow for easy mocking in unit tests and provides asynchronous counterparts for most operations to support non-blocking programming models. It targets a wide range of .NET frameworks (from .NET Framework 3.5 to .NET 10+) using conditional compilation and polyfills to maintain compatibility. The library demonstrates solid engineering practices through its use of the factory pattern for object creation, extension methods to enhance interface usability, and careful handling of binary data structures for statistics and framebuffer headers. Its comprehensive test suite, which includes mock implementations for various components, ensures reliability and facilitates safe evolution. While the broad target range introduces some complexity via conditional compilation symbols, the code remains well-organized and maintainable, reflecting a commitment to serving a diverse set of .NET applications requiring Android device interaction.

RATING: 9.0/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
GlitchEnzo/NuGetForUnity ★ 4562 393 APPLICATION

NuGetForUnity is a NuGet client built specifically for the Unity Editor, enabling package management directly within Unity projects. It provides an interactive editor window for browsing, installing, updating, and uninstalling NuGet packages, as well as a headless CLI tool for CI/CD pipelines. The system integrates with Unity's asset pipeline to configure imported DLLs (analyzers, native runtimes, player-only assemblies) and supports both NuGet V2 (OData) and V3 (JSON) API protocols. It also offers a plugin API for third-party extensibility through custom buttons, file handlers, and uninstall hooks. The architecture is modular, with clear separation between configuration, models, package sources, UI, and plugin support, all within the Unity Editor's asmdef framework.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
focus-creative-games/luban ★ 4560 732 APPLICATION

Luban is a game configuration solution that transforms structured data (Excel, JSON, YAML, Lua, XML, etc.) into strongly-typed code and serialized data for multiple target languages (C#, Java, Go, C++, Rust, Python, TypeScript, Lua, etc.) and data formats (binary, JSON, protobuf, flatbuffers, msgpack, BSON, etc.). It is implemented as a .NET 8 console application with a plugin-based pipeline architecture: schema loading → data loading → validation → code generation → data export. The core engine (Luban.Core) provides extensible interfaces for custom loaders, validators, code targets, and data targets, all discovered via assembly attributes. Code generation uses Scriban templates with language-specific extensions, and data serialization employs a custom compact binary protocol (ByteBuf). The tool is widely used in game development for managing configuration data across engines like Unity, Unreal, Godot, and Cocos.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
FirstGearGames/FishNet ★ 2040 237 APPLICATION

FishNet is a comprehensive Unity multiplayer networking framework providing a full client-server architecture with RPCs, sync types, prediction, scene management, observer conditions, and multiple transport backends (LiteNetLib, Synapse, Yak). It employs IL code generation via Mono.Cecil to auto-generate serializers and RPC stubs, achieving high performance and low bandwidth usage. The codebase is well-structured with extensive use of partial classes, pools, and utility patterns. It includes demos for authentication, prediction, collider rollback, and scene management. While the framework is tightly coupled to Unity, many utility components (e.g., object pooling, ring buffers, quaternion compression) are reusable in isolation and demonstrate strong engineering craftsmanship. The project is actively maintained with a large community and regular commits.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
Cysharp/MessagePipe ★ 1983 133 APPLICATION

MessagePipe is a high-performance C# library for in-process and distributed messaging, implementing pub/sub, mediator/CQRS, and request/response patterns with a flexible filter pipeline. It supports both synchronous and asynchronous operations, keyed and keyless subscriptions, and buffered/observable adapters. The library is DI-container agnostic, with first-class integrations for Microsoft.Extensions.DependencyInjection, Unity (Zenject, VContainer), and a built-in lightweight container. Distributed transports include TCP, UDP, Named Pipes, Unix Domain Sockets, Redis, and NATS, with MessagePack binary serialization. A Roslyn analyzer (MPA001) detects forgotten subscription disposal. The codebase is well-structured and performance-optimized (lock-free data structures, pooling, custom awaiters), but suffers from significant code duplication between .NET and Unity variants and embeds large third-party libraries (Zenject, MessagePack) directly in the Unity project, increasing maintenance burden.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
focus-creative-games/hybridclr_unity ★ 1012 164 APPLICATION

HybridCLR is a Unity Editor plugin and runtime library designed to enable native C# hot updates for games using the IL2CPP backend. It achieves this by modifying the IL2CPP runtime to support a hybrid AOT (Ahead-of-Time) and Interpreter execution model, allowing dynamic assembly loading without recompiling the native binary. The system operates through a deep integration with Unity's build pipeline, utilizing Editor-only build processors to analyze metadata, strip unnecessary AOT code, and generate necessary native bridges. Architecturally, the repository is split between Editor tools (metadata analysis, code generation, build hooks) and Runtime components (assembly loading, method dispatch). It relies heavily on native code patching (UnityHook) and custom binary parsing (UnityFS) to intercept and modify Unity's internal behavior. External dependencies include dnlib for IL metadata manipulation and embedded compression libraries (7zip, LZ4) for asset handling. While the solution is technically sophisticated, it carries significant maintenance risks due to its tight coupling with Unity's internal APIs and IL2CPP runtime internals. The codebase maintains compatibility across multiple Unity versions (2019-2023+) through version-specific build processors, but this creates a high surface area for breakage during Unity engine updates. It is a specialized tool for game development rather than a general-purpose library.

RATING: 8.5/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found

This repository is a complete multiplayer co-op game sample called 'Boss Room', built by Unity Technologies to demonstrate best practices for using Unity Netcode for GameObjects (NGO). It implements a server-authoritative action RPG where up to 8 players cooperate to defeat a boss in a dungeon. The architecture is modular and state-driven: a connection state machine (Offline, ClientConnecting, Hosting, etc.) manages network lifecycle, while game flow states (MainMenu, CharSelect, BossRoom, PostGame) control scene transitions and gameplay logic. The core gameplay revolves around a ScriptableObject-based action system where abilities (melee, projectiles, buffs, stealth, etc.) are defined as data assets and executed via server-side action players with client-side anticipation for latency masking. The project integrates Unity Gaming Services for authentication, session management, and relay, and uses VContainer for dependency injection. Key entry points include ApplicationController (DI setup), ConnectionManager (network state machine), and GameStateBehaviour subclasses. Data flows involve client input sent via RPCs, server-side processing with NetworkVariables for state sync, and a typed NetworkedMessageChannel for decoupled event broadcasting. External dependencies include Unity Netcode, Unity Transport, Unity Gaming Services, VContainer, Cinemachine, and URP.

RATING: 8.4/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
SolarianZ/UnityPlayableGraphMonitorTool ★ 492 34 APPLICATION

This repository contains a Unity Editor tool for monitoring and visualizing PlayableGraphs in real-time. The tool displays the topology of PlayableGraphs showing nodes and connections, allows inspection of node details (playable properties, clip information, etc.), and provides UI controls for layout, refresh rate, and visibility options. It implements a modular architecture with separate concerns for the main window, graph view, node representations, object pooling, and utility functions. The tool supports various Playable node types with specific visualizations and handles edge cases like circular references in PlayableGraphs.

RATING: 8.4/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
BepInEx/BepInEx ★ 8853 925 APPLICATION

BepInEx is a plugin/modding framework for Unity (Mono and IL2CPP) and .NET games (XNA, FNA, MonoGame). It injects itself into a game process via Doorstop, runs a preloader that patches game assemblies, and then loads user-authored plugins through a chainloader. The framework provides a comprehensive infrastructure: thread-safe configuration (TOML-based), structured logging (console, disk, Unity log), assembly patching API, native detour abstraction (Dobby/Funchook), and interop generation for IL2CPP games (via Cpp2IL and Il2CppInterop). It supports Windows, Linux, and macOS (with limitations), and handles multiple Unity runtime variants and .NET Framework/Core. The architecture is modular: core libraries (`BepInEx.Core`, `BepInEx.Preloader.Core`) provide the base plugin contract, configuration, logging, and assembly scanning; runtime-specific projects (`BepInEx.Unity.Mono`, `BepInEx.Unity.IL2CPP`, `BepInEx.NET.*`) implement the platform-specific startup, patching, and integration. External dependencies include HarmonyX for runtime method patching, MonoMod for assembly manipulation, and SemanticVersioning for dependency resolution. While many components are tightly coupled to the game-modding domain, several subsystems—logging, configuration, topological sorting, native detours—are well-abstracted and potentially reusable in other C# host applications. The codebase shows signs of long-term evolution (deprecated methods, duplicated `KeyboardShortcut` classes, static singletons) but remains actively maintained with recent commits and responsive issue triage.

RATING: 8.2/10 MAINT: active DRIFT: medium
â–¸ 6 reusable components found
freezy/VisualPinball.Engine ★ 510 73 APPLICATION

VisualPinball.Engine is a comprehensive pinball simulation engine and Unity package for authoring and playing virtual pinball tables. It provides a complete pipeline for importing Visual Pinball (.vpx) files, generating 3D meshes and physics colliders for every playfield element (bumpers, flippers, ramps, rubbers, targets, etc.), and running a Burst-compiled physics simulation with collision detection, flipper mechanics, nudge, and game logic wiring (switches, coils, lamps). The codebase is structured as a Unity package with extensive editor tooling (inspectors, manager windows, asset browser, packaging system) and a runtime player. It is not a standalone application but a library/framework that integrates deeply with Unity's editor and runtime. The architecture is modular, with clear separation of concerns: data classes with BiffAttribute-based binary serialization, mesh generators, collider generators, API interfaces for game logic, and a packaging system for distributing tables as .vpe files. The code demonstrates high craftsmanship in physics simulation, mesh tessellation, and binary format handling, though some legacy components and editor coupling exist.

RATING: 8.2/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
arimger/Unity-Editor-Toolbox ★ 1973 147 APPLICATION

This repository is a comprehensive Unity Editor extension framework that enhances the inspector, hierarchy, project, toolbar, and scene view windows through custom attributes, drawers, and serialization types. It provides a modular, settings-driven system where features like custom property drawers (regular and toolbox), conditional visibility, decorators, reorderable lists, inline editors, and reference pickers are toggled via a ScriptableObject asset. The architecture is IMGUI-based and overwrites the default custom editor for all UnityEngine.Objects, meaning it cannot easily coexist with other inspector plugins. The codebase demonstrates high craftsmanship in its drawer hierarchy, value extraction and comparison helpers, caching mechanisms, and scoped state management patterns. However, it relies heavily on reflection to access Unity internal APIs and uses numerous version-specific conditionals, which introduces maintenance risk with Unity updates. The included examples and tests provide a solid demonstration of the framework's capabilities.

RATING: 8.0/10 MAINT: maintained DRIFT: medium
â–¸ 6 reusable components found
marijnz/unity-toolbar-extender ★ 1947 197 APPLICATION

This is a Unity Editor extension package that injects custom GUI into Unity's toolbar via reflection. The core library (ToolbarExtender.cs) exposes two static lists of Action delegates (LeftToolbarGUI and RightToolbarGUI) that users populate in InitializeOnLoad static constructors. The companion ToolbarCallback.cs handles the low-level reflection hooking, with version-specific code paths for Unity 2018 through Unity 6.3 (which uses UI Toolkit docks instead of IMGUI). Two example implementations demonstrate usage: a scene switcher with numbered buttons and a scene view focuser toggle that persists state via EditorPrefs. The architecture is minimal but effective; the library has no external dependencies beyond the Unity Editor API and is distributed as a UPM package. The code is well-structured for its niche, though it remains inherently fragile due to its reliance on Unity's internal API reflection.

RATING: 8.0/10 MAINT: maintained DRIFT: low
â–¸ 2 reusable components found
mister91jiao/BundleMaster ★ 297 59 APPLICATION

BundleMaster is a Unity asset management system for handling AssetBundles with synchronous/asynchronous loading, reference counting, and hot-update capabilities. The architecture consists of core runtime components (BundleMasterRuntime/), platform-specific adapters (WebGL, Nintendo Switch), editor tools for configuration and building, and utility systems for threading and cryptography. Key entry points include AssetComponent.Load()/LoadAsync() for asset loading, AssetComponent.Initialize() for bundle setup, and AssetComponent.Update() for maintenance. The system manages asset lifecycles through reference counting and periodic unloading pools, supports encrypted/obfuscated asset bundles, and provides editor workflows for building asset bundles with version tracking.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
wy-luke/All-Chinese-Character-Set ★ 1946 215 DATA_RESEARCH

This repository provides curated Chinese character sets (3500 common, 7000 common, and a comprehensive set) combined with symbols (Latin letters, digits, punctuation, full-width variants). The data is sourced from official Chinese character frequency lists and community-maintained character tables. The repository includes simple Node.js scripts for building the final text files from source files, merging new characters, and removing duplicates. The primary use case is generating character sets for Unity TextMeshPro font creation, but the data can be used in any application requiring a comprehensive Chinese character inventory. The codebase is minimal and well-documented in AGENTS.md, with clear instructions for editing source files and regenerating outputs. The repository is actively maintained with no open issues and a recent commit.

RATING: 7.8/10 REPRO: 8.0/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
openupm/openupm-cli ★ 302 21 APPLICATION

openupm-cli is a command-line interface for managing Unity Package Manager (UPM) dependencies. It allows users to add, remove, search, view, and list Unity packages from various registries (primarily OpenUPM and Unity's official registry). The tool modifies the Unity project's manifest.json file to add/remove dependencies and handles scoped registries for package resolution. It features a modular architecture with clear separation between CLI interface, application logic, domain models, and I/O operations. The codebase is written in TypeScript with comprehensive test coverage and follows semantic versioning for releases.

RATING: 7.8/10 MAINT: active DRIFT: low
â–¸ 6 reusable components found
gradientspace/geometry3Sharp ★ 1900 439 APPLICATION

geometry3Sharp is a comprehensive C# library for 2D/3D geometric computing and triangle mesh processing. It provides a rich set of data structures (dynamic mesh, spatial indices, graphs) and algorithms (mesh editing, remeshing, simplification, boolean operations, distance queries, implicit surfaces, hole filling, smoothing, deformation). The library also includes I/O for common mesh formats (OBJ, STL, OFF), numerical solvers (sparse CG, SVD, eigen), and utilities like parallel loops and memory-efficient containers. It is designed for integration into real-time applications and Unity via conditional compilation. While the codebase shows signs of long development with some incomplete features and deprecated APIs, it remains a powerful and well-crafted tool for geometry processing tasks.

RATING: 7.6/10 MAINT: maintained DRIFT: medium
â–¸ 3 reusable components found
$ loading more...
$ submit: