/awesome-upm

A curated list of awesome Git repositories for Unity that support Unity Package Manager (UPM). Feel free to add yours in!

The UnlicenseUnlicense

Archive Notice

This repository was created back when there were no publicly available UPM registries. Since then, OpenUPM has been made available by the marvellous Favo Yang. Therefore, please visit the OpenUPM registry to explore the awesome projects developed by the Unity community.


Awesome UPM

An awesome list of Git repositories for Unity that support Unity Package Manager (UPM).

Asset

Package Description
Eflatun.WebView WebView for Unity.
Outline-Effect Draw colored outlines around objects in 3D
UniLWP.Droid Drop-in aar for making Android live wallpapers using Unity (Limited version)

Code

Package Description
ClassImpl Dynamically create classes at runtime.
Eflatun.Calculation Calculation utilities for Unity.
Eflatun.CodePatterns Common code pattern utilities for Unity.
Eflatun.Common Common utilities for Unity and C#. It mostly consists of useful extension methods.
Eflatun.EventBus Generic event bus for Unity with Extenject.
Eflatun.Expansions C# Expansions
Eflatun.GeoUnity Geographical (latitude, longitude) projection and calculation library for Unity.
Eflatun.GridBuilding Grid building utilities for Unity.
Eflatun.HexMath Library for hexagonal grid calculations.
Eflatun.Pooling Object pooling utilities for Unity.
Eflatun.RandomUtils Random Number Generator utilities for Unity.
Eflatun.Sampling Sampling utilities for Unity.
Eflatun.Serialization Serialization utilities for Unity.
Eflatun.Tracking2D This was an attempt to replace Unity's built-in 2D physics engine wtih only the features I wanted.
Eflatun.Trajectory Trajectory calculation utilities for Unity.
Enum Generator Unity package for generating c# / f# / vb / cil enums based on json input files.
InterSUCC Use SUCC without using magic strings
Json RPC Json rpc v1.0 server implementation
Newtonsoft.Json (jilleJr) Community UPM version of Newtonsoft.Json
Newtonsoft.Json (PixelWizards) Copy of Unity's internal Newtonsoft.Json package
PersistentData Easy cross-platform data saving and loading for Unity
SUCC Library for creating and managing configuration files

ECS & DOTS

Package Description
ECS Line Renderer ECS approach to render a line.
EntitySelection A minimal solution for selecting entities in the unity sceneview.
JTween A job-based tween library
ReeseUnityDemos Unity DOTS packages and samples—featuring ECS, jobs and the Burst compiler

Framework

Package Description
AnimeTask (fork) Task Animation Library
BindingsRx (fork) A 2 way binding system for unity using unirx
BindingsRx-TextMeshPro BindingsRx bindings for TextMeshPro.
EcsRx.Unity (fork) A simple framework for unity using the ECS paradigm but with unirx for fully reactive systems.
Extenject (fork) Dependency Injection Framework
joy ECS framework that uses MonoBehaviours as components and GameObjects as entities.
NanoECS entity-component-system framework
Scriptable-Architecture Makes using Scriptable Objects as a fundamental part of your architecture in Unity super easy
The Mixed Reality Toolkit (XRTK) Makes it extremely easy to get started creating Mixed Reality applications
UniRx (fork) Reactive Extensions for Unity
UniTask (fork) Provides an efficient async/await integration to Unity.

Inspector

Package Description
Eflatun.Inspector Inspector utilities for Unity.
NaughtyAttributes Extends the Unity inspector with a wide variety of attributes.
Scene Reference (import from gist) Enables referencing Scene assets from the inspector.
Serializable Callback Lets you drag-and-drop methods in the Unity inspector.
Serializable Dictionary (fork) A Dictionary class that can be serialized in the Unity inspector.
type-inspector Reference types and members from the inspector.

Native Plugins

Package Description
AR Support Checker Plain detection of AR supported (ARCore, ARKit, AR Foundation) devices.
Sign in with Apple Unity Plugin Adds native Sign in With Apple support for iOS, tvOS and macOS

Shader Graph

Package Description
Noisy Nodes Adds various noise-generation nodes to Unity Shader Graph, including 3D noise nodes.

UI

Package Description
Eflatun.UI UI utilities for Unity.
UI Extensions A collection of extension scripts / effects and controls to enhance your Unity UI experience.
UI Shapes Kit (fork) Procedural shapes for Unity UI

Utility

Package Description
AutoPreset Set default asset import options, per-folder
Asset Inspector Unity sub-asset editor
Compile Time Tracker Logs in the console each time your code compiles to tell you how long the compilation took.
Constants Generator (import from gist) Automatically generates code constants for Tags, Layers, Sorting Layers and Input Axes.
Eflatun.AndroidManifestHook Utilites for hooking into AndroidManifest.xml generation in Unity.
Hierarchy Folders Adds folders in scene hierarchies.
Ingame Debug Console (fork) In-game Unity debug console, with messages, warnings and errors.
JCMG SemVer Semantic Versioning 2.0.0 implementation
NuGet for Unity (fork) A NuGet Package Manager for Unity
Scene Switcher Editor extension for quick scene switching.
Scene View Camera Aligner Quickly align your Camera GameObject with the camera in your Scene View
Unity Addressable Importer A simple rule based addressable asset importer.
uREPL (fork) In-game powerful REPL envinronment

UPM Utilities

Package Description
CommUnityStore Tool to help find and import packages
Git Dependency Resolver For Unity Resolves git url dependencies in Unity packages.
Git UPM Publisher 2 Automate UPM package releases for Git repositories containing Unity plugins.
JCMG Package Tools Tools for publishing UPM packages.
OpenUPM Open Source Unity Package Registry
Originer Automatically resolves UPM dependencies for dependencies which are on Github
ubump SemVer bumping for Unity projects and UPM packages.
Unity NuGet Install NuGet packages into a Unity project via the Unity Package Manager
UPM Git Extension Makes UPM UI work properly for packages installed from git repository.
UPM Package Populator A helper library to cross populate nested Unity packages in a project with NPM data.
UPM Embed Unity editor extension for easily embedding UPM packages in your project

XR (AR/MR/VR)

Package Description
WebXR Export Develop and export WebXR experiences using Unity WebGL
WebXR Interactions Interaction Components and Samples for the WebXR Export package
WebXR Input Profiles Loader Loads XR controllers models based on the user device on runtime

How to support UPM in my Git repository?

UPM requires a package.json file at the root, or, alternatively for a UPM monorepo, one package.json file per subdirectory (typically with each of those directories inside /Packages). There are ways of doing this without changing your whole repository structure. Take a look at this amazing article by mob-sakai.

After you read that article, take a look at this tool for automating that process.