├── .gitignore ├── .gitattributes ├── .github ├── funding.yml ├── wiki │ ├── repository-open-graph.png │ └── repository-readme-splash.png └── workflows │ ├── lint-markdown.yml │ ├── automatic-pull-request-stale.yml │ └── create-release.yml ├── .gitdeployment ├── package.json ├── .markdownlint.yaml ├── CONTRIBUTING.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | .DS_Store -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | .scripts/* linguist-vendored -------------------------------------------------------------------------------- /.github/funding.yml: -------------------------------------------------------------------------------- 1 | github: jeffreylanters -------------------------------------------------------------------------------- /.gitdeployment: -------------------------------------------------------------------------------- 1 | Bump the package version and push a tag to deploy -------------------------------------------------------------------------------- /.github/wiki/repository-open-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffreylanters/awesome-unity-packages/HEAD/.github/wiki/repository-open-graph.png -------------------------------------------------------------------------------- /.github/wiki/repository-readme-splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeffreylanters/awesome-unity-packages/HEAD/.github/wiki/repository-readme-splash.png -------------------------------------------------------------------------------- /.github/workflows/lint-markdown.yml: -------------------------------------------------------------------------------- 1 | name: Lint Markdown 2 | on: 3 | - push 4 | - pull_request 5 | jobs: 6 | main: 7 | name: Main 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v2 12 | - name: Setup Node 13 | uses: actions/setup-node@v1 14 | with: 15 | node-version: 12 16 | registry-url: https://registry.npmjs.org 17 | - name: Install Global Dependencies 18 | run: npm install --global markdownlint-cli 19 | - name: Run Linter 20 | run: markdownlint README.md -------------------------------------------------------------------------------- /.github/workflows/automatic-pull-request-stale.yml: -------------------------------------------------------------------------------- 1 | name: Automatic Pull Request Stale 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '0 0 * * *' 7 | 8 | jobs: 9 | stale: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/stale@v1 13 | with: 14 | repo-token: ${{ secrets.GITHUB_TOKEN }} 15 | stale-pr-message: > 16 | This PR has been automatically marked as closed because it has not had 17 | recent activity. They will wait 15 days for your interaction, after 18 | that the PR will be closed. 19 | stale-pr-label: 'stale' 20 | days-before-stale: 15 21 | days-before-close: 7 -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-unity-packages", 3 | "version": "1.0.1", 4 | "description": "A frequently updated, hand-picked and curated list of delightful and awesome open-source Unity Packages.", 5 | "main": "README.md", 6 | "scripts": { 7 | "test": "markdownlint README.md" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/jeffreylanters/awesome-unity-packages.git" 12 | }, 13 | "keywords": [ 14 | "list", 15 | "awesome", 16 | "opensource", 17 | "package", 18 | "unity", 19 | "dotnet" 20 | ], 21 | "author": "Jeffrey Lanters", 22 | "bugs": { 23 | "url": "https://github.com/jeffreylanters/awesome-unity-packages/issues" 24 | }, 25 | "homepage": "https://github.com/jeffreylanters/awesome-unity-packages#readme" 26 | } 27 | -------------------------------------------------------------------------------- /.github/workflows/create-release.yml: -------------------------------------------------------------------------------- 1 | name: Create Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | jobs: 9 | main: 10 | name: Publish to NPM 11 | 12 | runs-on: ubuntu-latest 13 | 14 | environment: 15 | name: Awesome List 16 | url: https://github.com/jeffreylanters/awesome-unity-packages/blob/main/README.md#awesome-unity-packages 17 | 18 | steps: 19 | - name: Checkout code 20 | uses: actions/checkout@v2 21 | 22 | - name: Create Release 23 | id: create_release 24 | uses: actions/create-release@v1 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | with: 28 | tag_name: ${{ github.ref }} 29 | release_name: Release ${{ github.ref }} 30 | draft: false 31 | prerelease: false -------------------------------------------------------------------------------- /.markdownlint.yaml: -------------------------------------------------------------------------------- 1 | # https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md 2 | 3 | default: true 4 | extends: "" 5 | MD001: true 6 | MD002: 7 | level: 1 8 | MD003: 9 | style: consistent 10 | MD004: 11 | style: dash 12 | MD005: true 13 | MD006: true 14 | MD007: 15 | indent: 2 16 | start_indented: false 17 | MD009: 18 | br_spaces: 2 19 | list_item_empty_lines: false 20 | strict: false 21 | MD010: 22 | code_blocks: true 23 | MD011: true 24 | MD012: 25 | maximum: 1 26 | MD013: 27 | line_length: 800 28 | heading_line_length: 80 29 | code_block_line_length: 80 30 | code_blocks: true 31 | tables: true 32 | headings: true 33 | headers: true 34 | strict: false 35 | stern: false 36 | MD014: true 37 | MD018: true 38 | MD019: true 39 | MD020: true 40 | MD021: true 41 | MD022: 42 | lines_above: 1 43 | lines_below: 1 44 | MD023: true 45 | MD024: 46 | allow_different_nesting: false 47 | siblings_only: false 48 | MD025: 49 | level: 1 50 | front_matter_title: "^\\s*title\\s*[:=]" 51 | MD026: 52 | punctuation: ".,;:!。,;:!" 53 | MD027: true 54 | MD028: true 55 | MD029: 56 | style: "one_or_ordered" 57 | MD030: 58 | ul_single: 1 59 | ol_single: 1 60 | ul_multi: 1 61 | ol_multi: 1 62 | MD031: 63 | list_items: true 64 | MD032: true 65 | MD033: 66 | allowed_elements: 67 | - Div 68 | MD034: true 69 | MD035: 70 | style: "consistent" 71 | MD036: 72 | punctuation: ".,;:!?。,;:!?" 73 | MD037: true 74 | MD038: true 75 | MD039: true 76 | MD040: true 77 | MD041: 78 | level: 1 79 | front_matter_title: "^\\s*title\\s*[:=]" 80 | MD042: true 81 | MD043: 82 | headings: 83 | - "# Awesome Unity Packages" 84 | - "## Animation and Tweening" 85 | - "## Augmented and Virtual Reality" 86 | - "## Audio and Sound Systems" 87 | - "## Asset and Resource Management" 88 | - "## Camera and Cinematic" 89 | - "## Canvas and Graphical User Interfaces" 90 | - "## Code and Component Generation" 91 | headers: [] 92 | MD044: 93 | names: [] 94 | code_blocks: true 95 | MD045: true 96 | MD046: 97 | style: "consistent" 98 | MD047: true 99 | MD048: 100 | style: "consistent" -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | > Please be aware that we want to accept your contribution, but we have **some rules to keep the minimum quality** of the packages listed here. All reviews are **not personal feedback**, even if you are a _developer reviewing your contribution_. **Sorry if we can't meet your expectations, we do our best**. 4 | 5 | - **To add, remove, or change things on the list:** Submit a pull request 6 | 7 | - List items should be appended at the end; 8 | - Each item should be limited to one link; 9 | - The link should be the name of the package or project; 10 | - Descriptions should be clear, concise, and non-promotional; 11 | - Descriptions should follow the link, on the same line and end with a punctuation mark; 12 | - At least 3 items are needed to create a new category; 13 | - The package or project had to be maintained under **open source license** 14 | 15 | Please contribute links to packages you have used or are familiar with. This will help ensure high-quality entries. 16 | 17 | ## Quality standards 18 | 19 | To be on the list, package repositories should adhere to these quality standards: 20 | 21 | - Code functions as documented and expected 22 | - Generally useful to the wider community of Unity developers 23 | - Actively maintained 24 | - Regular, recent commits 25 | - Or, for finished projects, issues and pull requests are responded to 26 | - Stable or progressing toward stable 27 | - Thoroughly documented (README, Code documentation, comments, etc.) in english language, so everyone is able to understand the project's intention and how it works 28 | 29 | ## Maintainers 30 | 31 | To make sure every PR is checked, your changes will be validated and linted by a workflow and at and will be reviewed by at least one maintainer before it can get merged. 32 | 33 | The maintainers will review your PR and notify you and tag it in case any information is still missing. They will wait 15 days for your interaction, after that the PR will be closed. 34 | 35 | ## Reporting issues 36 | 37 | Please open an issue if you would like to discuss anything that could be improved or have suggestions for making the list a more valuable resource. We realize sometimes packages fall into abandonment or have breaking builds for extended periods of time, so if you see that, feel free to change its listing or let us know. We also realize that sometimes projects are just going through transitions or are more experimental in nature. These can still be cool, but we can indicate them as transitory or experimental. 38 | 39 | Removal changes will not be applied until they have been pending for a minimum of 1 week (7 days). This grace window benefits projects that may be going through a temporary transition but are otherwise worthy of being on the list. 40 | 41 | Thanks, happy coding! 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | ![readme splash](https://raw.githubusercontent.com/jeffreylanters/awesome-unity-packages/master/.github/wiki/repository-readme-splash.png) 6 | 7 | [![Stargazers](https://img.shields.io/github/stars/jeffreylanters/awesome-unity-packages.svg?style=for-the-badge)](https://github.com/jeffreylanters/awesome-unity-packages/stargazers) 8 | [![awesome](https://img.shields.io/badge/list-awesome-fc60a8.svg?style=for-the-badge)](https://github.com/sindresorhus/awesome) 9 | [![build](https://img.shields.io/github/workflow/status/jeffreylanters/awesome-unity-packages/Lint%20Markdown/main?style=for-the-badge)](https://github.com/jeffreylanters/awesome-unity-packages/actions) 10 | [![deployment](https://img.shields.io/github/deployments/jeffreylanters/awesome-unity-packages/Awesome%20List?style=for-the-badge)](https://github.com/jeffreylanters/awesome-unity-packages/deployments/activity_log?environment=Awesome+List) 11 | 12 | A frequently updated, hand-picked and curated list of delightful and awesome open-source Unity Packages. 13 | 14 | [**Contribution Guidelines**](https://github.com/jeffreylanters/awesome-unity-packages/blob/main/CONTRIBUTING.md) · 15 | [**Discussion Board**](https://github.com/jeffreylanters/awesome-unity-packages/discussions) 16 | 17 | **Made with ♥ by Jeffrey Lanters!** 18 | 19 |
20 | 21 | # Awesome Unity Packages 22 | 23 | Inspired on many other [Awesome](https://github.com/sindresorhus/awesome) lists. Many of these awesome packages can be found on the awesome platform [OpenUPM](https://openupm.com). Please take a quick gander at the [contribution guidelines](https://github.com/jeffreylanters/awesome-unity-packages/blob/main/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/jeffreylanters/awesome-unity-packages/graphs/contributors), you're awesome! If you've noticed a package on the list that is no longer maintained or is not a good fit, please submit a pull request to improve to keep things awesome. Thank you! 24 | 25 | ## Animation and Tweening 26 | 27 | _Packages for implementing all sorts of animations from character to userinterface._ 28 | 29 | - [Unity Tweens](https://github.com/jeffreylanters/unity-tweens) is an extremely light weight, extendable and customisable tweening engine made for strictly typed script-based animations for user-interfaces and world-space objects optimised for all platforms. 30 | - [Bezier Solution](https://github.com/yasirkula/UnityBezierSolution) provides a spline solution for Unity 3D with some utility functions. Splines can be created and edited visually in the editor, or by code during runtime. 31 | - [Reanimator](https://github.com/aarthificial/reanimation) is a custom animator for Unity created to simplify the development of Astortion. 32 | - [Fancy Scroll View](https://github.com/setchi/FancyScrollView) is comes with a generic ScrollView component that allows you to implement highly flexible animations. It also supports infinite scrolling. 33 | - [Animation Sequencer](https://github.com/brunomikoski/Animation-Sequencer) provides a way to create complex animations of sequence of events by a friendly user interface. 34 | 35 | ## Augmented and Virtual Reality 36 | 37 | _Packages for implementing desktop and mobile augmented and virtual reality solutions._ 38 | 39 | - [MeshUtility](https://github.com/vrm-c/UniVRM) provides utilities allowing you to import and export files of the VRM format. 40 | - [XR Line Renderer](https://github.com/Unity-Technologies/XRLineRenderer) is an XR-Focused line renderer that mimics rendering with 3d capsules while only using two quads worth of geometry. 41 | - [HandPosing](https://github.com/MephestoKhaan/HandPosing) uses Oculus Quest hand-tracking to control Oculus default rigged hands and use it to generate grab poses in an instant. 42 | - [XRTK Core](https://github.com/XRTK/XRTK-Core) is the Mixed Reality Toolkit's primary focus is to make it extremely easy to get started creating Mixed Reality applications and to accelerate deployment to multiple platforms from the same Unity project. 43 | - [ARKit Streamer](https://github.com/asus4/ARKitStreamer) is a remote debugging tool for AR Founndation with ARKit4 featrues. This is temporary solution until the Unity team has completed the AR remote functionality - See Unity forum for more information. 44 | 45 | ## Audio and Sound Systems 46 | 47 | _Packages for handeling everything sound and audio related._ 48 | 49 | - [UniVoice](https://github.com/adrenak/univoice) is a voice chat/VoIP solution for Unity. It comes with ready-to-use P2P (peer to peer) conenctivity which allows devices to communicate nearly free of cost. 50 | - [UniMic](https://github.com/adrenak/unimic) provides a convenience wrapper for Unity's Microphone class. 51 | - [USFXR](https://github.com/grapefrukt/usfxr) lets you quickly generate placeholder or permanent sound effects right inside the Unity editor. 52 | 53 | ## Asset and Resource Management 54 | 55 | _Packages for managing and downloading Unity Assets and Resources._ 56 | 57 | - [Asset Usage Detector](https://github.com/yasirkula/UnityAssetUsageDetector) is an editor extension helps you figure out at which places an asset or GameObject is used, i.e. lists the objects that refer to the asset. It is possible to search for references in the Project and in the scenes of your project. 58 | - [Async Image Loader](https://github.com/Looooong/UnityAsyncImageLoader) aims to offload image loading, image decoding and mipmap generation to other threads. It creates smoother gameplay and reduces lag spike on the Unity main thread when loading large images. 59 | - [Addressables Services](https://github.com/dre0dru/AddressablesServices) provides a set of classes to convert Unity Addressables callbacks/coroutine workflow to async/await with UniTask. 60 | - [GLTFast](https://github.com/atteneder/glTFast) enables loading glTF (GL Transmission Format) asset files in Unity while focussing on speed, memory efficiency and a small build footprint. 61 | 62 | ## Camera and Cinematic 63 | 64 | _Packages for taking control over the camera and create cinematics._ 65 | 66 | - [Perception Package](https://github.com/Unity-Technologies/com.unity.perception) provides a toolkit for generating large-scale datasets for computer vision training and validation which is focused on a handful of camera-based use cases. 67 | - [Space Navigator](https://github.com/PatHightree/SpaceNavigator) lets you fly around your scene and allows you to move items around. 68 | It can also be used at runtime via scripting. 69 | - [UniCAVE](https://github.com/widVE/UniCAVE) is a solution for running Unity within immersive projection VR display systems by providing a Plugin for Non-Head Mounted Virtual Reality Display Systems. 70 | - [HDRP UI Camera Stacking](https://github.com/alelievr/HDRP-UI-Camera-Stacking) package allows you to stack multiple camera rendering UI only at a fraction of the cost of a standard camera. 71 | - [Vision](https://github.com/mackysoft/Vision) makes Culling Groups available for everyone by offers a way to integrate your own systems into Unity’s culling and LOD pipeline. 72 | 73 | ## Canvas and Graphical User Interfaces 74 | 75 | _Packages for create and working with the canvas and building graphical user interfaces._ 76 | 77 | - [Canvas Visualizer](https://github.com/jeffreylanters/unity-canvas-visualizer) provides an editor util that helps you visualise all of your rectangle transforms within your canvas for easier navigation and building while working on your user interface. 78 | - [UI Effect](https://github.com/mob-sakai/UIEffect) let's decorate your UI with effects by letting you control parameters as you like from the script as well as inspector, Animation Clip is supported as a matter of course. 79 | - [UI Particle](https://github.com/mob-sakai/ParticleEffectForUGUI) provides a component to render particle effect for uGUI in Unity. The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas. 80 | - [XCharts](https://github.com/monitor1394/unity-ugui-XCharts) provides a powerful, easy-to-use, configurable charting and data visualization library for Unity's user interface system. 81 | - [Fancy Scroll View](https://github.com/setchi/FancyScrollView) is comes with a generic ScrollView component that allows you to implement highly flexible animations. It also supports infinite scrolling. 82 | - [Soft Masks](https://github.com/mob-sakai/SoftMaskForUGUI) provides a smooth masking component for Unity UI elements allowing you to beautifully represent the rounded edges of your UI. 83 | - [Notch Solution](https://github.com/5argon/NotchSolution) contains a set of components and tools to solve notched/cutout phones layout problems for Unity. 84 | 85 | ## Code and Component Generation 86 | 87 | _Packages which help with generating code and components._ 88 | 89 | - [Scriptable Object Collection](https://github.com/brunomikoski/ScriptableObjectCollection) is a library to help improve the usability of Unity3D Scriptable Objects by grouping then into a collection and exposing then by code or nice inspectors! 90 | - [Genesis](https://github.com/jeffcampbellmakesgames/Genesis) is architected as a .Net Core console application that leverages Roslyn code analysis to inspect a target C# codebase and generate code files where developers can build custom code generators via an extensible plugin framework. 91 | - [Generic Objects](https://github.com/SolidAlloy/GenericUnityObjects) allows to create and use generic Scriptable Objects and Mono Behaviours in Unity. 92 | - [Scriptable Object Variant](https://github.com/GieziJo/ScriptableObjectVariant) adds a field to any Scriptable Object tagged with the SOVariant attribute that lets you select an original Scriptable Object and override selected fields in the child object. 93 | - [Entity Component System](https://github.com/jeffreylanters/unity-entity-component-system) provides a better approach to game design that allows you to concentrate on the actual problems you are solving: the data and behavior that make up your game. By moving from object-oriented to data-oriented design it will be easier for you to reuse the code and easier for others to understand and work on it. 94 | --------------------------------------------------------------------------------