{"id":19495776,"url":"https://github.com/blitzy/unity-radialcontroller","last_synced_at":"2025-08-30T20:14:51.850Z","repository":{"id":166926640,"uuid":"217158485","full_name":"Blitzy/unity-radialcontroller","owner":"Blitzy","description":"This projects show how to enable the use of the Microsoft Radial Controller (Surface Dial) inside of a non-UWP Unity Windows Desktop application.","archived":false,"fork":false,"pushed_at":"2019-11-21T19:30:18.000Z","size":205,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-23T11:15:32.987Z","etag":null,"topics":["controller","input","microsoft","radial-controller","surface-dial","unity","unity3d-plugin","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Blitzy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-23T21:39:55.000Z","updated_at":"2025-03-18T10:31:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"80e2ccc6-29e5-44d7-b5e2-98f18484a75f","html_url":"https://github.com/Blitzy/unity-radialcontroller","commit_stats":null,"previous_names":["blitzy/unity-radialcontroller"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Blitzy/unity-radialcontroller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blitzy%2Funity-radialcontroller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blitzy%2Funity-radialcontroller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blitzy%2Funity-radialcontroller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blitzy%2Funity-radialcontroller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Blitzy","download_url":"https://codeload.github.com/Blitzy/unity-radialcontroller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Blitzy%2Funity-radialcontroller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272900163,"owners_count":25012034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["controller","input","microsoft","radial-controller","surface-dial","unity","unity3d-plugin","windows"],"created_at":"2024-11-10T21:38:49.913Z","updated_at":"2025-08-30T20:14:51.827Z","avatar_url":"https://github.com/Blitzy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Radial Controller for Unity\nThis projects enables the use of the [Microsoft Radial Controller](https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Input.RadialController) inside of a non-UWP Unity Windows Desktop application.\n\n\n[View the Changelog](CHANGELOG.md) for details changes/improvements in each version.\n\n## What is this for?\nI needed to get close to native functionality of the [Microsoft Surface Dial](https://docs.microsoft.com/en-us/windows/uwp/design/input/windows-wheel-interactions) working inside of a Unity application that is **NOT** built for [UWP](https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide). \n\nThe Microsoft Surface Dial API provided by Microsoft is intended for UWP apps but building a UWP app in Unity is laborious and includes lots of unnecessary overhead for the average Unity project. This project's original goal was to provide Surface Dial controls to a Unity Windows Desktop application without the need to make the Unity application a UWP app.\n\n## Quick Start\n\nThe `RadialControllerUnity` folder is a functioning example project with all necessary components to get a Radial Controller working in Unity.\n\nTo get started using a Radial Controller in your own Unity Project do the following:\n\n### Installation Option 1:\n\nDownload \u0026 import the latest `.unitypackage` from the GitHub releases page of this repository.\n\n### Installation Option 2:\n\n1. Copy this folder to your project's Asset folder:\n    - `RadialControllerUnity/RadialController`\n2. Copy this executable to your project's StreamingAssets folder.\n    - `RadialControllerUnity/StreamingAssets/RadialControllerServer.exe`\n\n### How to use\n\n1. In your Unity scene, attach the `RadialController` component to a GameObject.\n2. Hook up event handlers to the various `RadialController` components UnityEvents and do all your Unity game logic from there.\n\n## How does it work\nWhen you play your Unity project, the `RadialController` Unity component will attempt to create a bridge to communicate with the Radial Controller device depending on the platform being run on.\n\n\u003e NOTE: Currently Windows 10 is the only supported platform.\n\n### Windows\n1. `RadialControllerWindowsBridge` is created by the `RadialController` component to communicate with the Radial Controller device on Windows. \n2. The windows bridge starts the side-process application `RadialControllerServer.exe`. This is a simple Windows desktop application that registers itself with the Radial Controller through the official Microsoft Windows Radial Controller API for Windows 10. \n3. The server application pipes events received from the official Windows API to Unity through a local socket connection using the .NET `UDPClient`. The `RadialControllerWindowsBridge` receives the events from the server and processes them and turns them into UnityEvents that are easy to use inside of any Unity application.\n\n## Contribute\nIf you wish to contribute to this project feel free to open up a pull request and I will review it for inclusion. The Unity-side is designed as such that it should be easy to extend its capability to other platforms by extending from `IRadialControllerPlatformBridge` and providing platform specific functionality.\n\nSame goes for bug fixes, if you find any, feel free to open up an Issue here on the GitHub repo or fix it yourself and create a pull request so we may all benefit.\n\n## Third Party Credits\n - [MiniJSON](https://gist.github.com/darktable/1411710) - Calvin Rien ([darktable](https://gist.github.com/darktable/1411710))","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitzy%2Funity-radialcontroller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblitzy%2Funity-radialcontroller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitzy%2Funity-radialcontroller/lists"}