{"id":13730055,"url":"https://github.com/bengreenier/webrtc-unity-plugin","last_synced_at":"2025-07-26T09:11:12.282Z","repository":{"id":74695606,"uuid":"170763735","full_name":"bengreenier/webrtc-unity-plugin","owner":"bengreenier","description":"Cross-platform Webrtc support for Unity apps ☁🎲","archived":false,"fork":false,"pushed_at":"2019-08-15T15:11:34.000Z","size":19427,"stargazers_count":107,"open_issues_count":5,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-05-28T23:34:33.477Z","etag":null,"topics":["unity3d","webrtc","webrtc-demos"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bengreenier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-02-14T21:56:47.000Z","updated_at":"2024-03-13T11:45:51.000Z","dependencies_parsed_at":"2023-02-25T07:45:19.594Z","dependency_job_id":null,"html_url":"https://github.com/bengreenier/webrtc-unity-plugin","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bengreenier%2Fwebrtc-unity-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bengreenier%2Fwebrtc-unity-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bengreenier%2Fwebrtc-unity-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bengreenier%2Fwebrtc-unity-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bengreenier","download_url":"https://codeload.github.com/bengreenier/webrtc-unity-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243841125,"owners_count":20356440,"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","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":["unity3d","webrtc","webrtc-demos"],"created_at":"2024-08-03T02:01:09.237Z","updated_at":"2025-03-17T02:31:44.098Z","avatar_url":"https://github.com/bengreenier.png","language":"C#","funding_links":[],"categories":["C#","Game Development"],"sub_categories":["Unity Engine: Resources"],"readme":"# Webrtc Unity Plugin\n\n\u003e 🚨 You probably want [Microsoft/MixedReality-WebRTC](https://github.com/microsoft/MixedReality-WebRTC) instead! 🚨\n\n![plugin logo](./.github/logo.png)\n\nCross-platform Webrtc support for Unity apps ☁🎲\n\n## Why\n\nWe needed a cross-platform webrtc solution for Unity, based on [webrtc's unityplugin example](https://webrtc.googlesource.com/src/+/refs/heads/master/examples/unityplugin/) that supports `win32`, and `winuwp` (theoretically linux and mac are supported as well, but untested). The ✨ magic ✨ of this repository is threefold:\n\n1) We support a [winuwp](https://github.com/webrtc-uwp) (hololens compatible) binary\n2) We include a [sample signalling](https://github.com/bengreenier/node-dss) implementation\n3) We provide a working end-to-end example\n\n## How to use\n\n\u003e Officially supports Unity 2017.4.x (LTS) and Unity 2018.3.x\n\n+ Import [the latest release package](https://github.com/bengreenier/webrtc-unity-plugin/releases/latest)\n+ Take a look at the `UnityWebrtc\\Examples` directory\n+ Run an example to ensure your a/v hardware is working\n+ A [detailed walkthrough](https://github.com/bengreenier/webrtc-unity-plugin/issues/1) describing the managed components is coming soon\n\n### Webrtc Basic Signal Example\n\nThe basic signal example (`WebrtcBasicSignalExample.unity`) is designed to quickly demonstrate what managed code we'd need to write to configure a peer instance using a service to exchange sdp information (handshake) and ice candidates (NAT traversal).\n\nTo use it, one needs to set up a few dependencies:\n\n+ Clone, setup, and run an instance of [node-dss](https://github.com/bengreenier/node-dss#how) (instructions at link).\n+ Modify the `WebrtcSignalControls` script via the inspector, on the `WebrtcSignalControls` object to point at your `node-dss` server url.\n\n![screenshot showing modifying the server url](./.github/change_signaling_address.png)\n\nOnce the server is running and Unity is configured, both clients should be able to exchange information by device id. The device id is displayed across the top left of the screen, and should be typed into the remote peers input field.\n\nFor instance, to connect Peer A (device id: 1) with Peer B (device id: 2) the `targetId` input field for Peer A should have the value `2`. For Peer B, it should have the value `1`. A connection can not succeed unless __both peers have the input field populated__.\n\nOnce the `targetId` field is filled on both peers, either peer can begin the connection by clicking the `offerButton`.\n\nAt this point, sdp messages (handshake data) and ice candidates (NAT traversal data) should be sent via the server, and the clients should be able to connect successfully.\n\n### Reference Docs\n\nTo better understand the API space of this solution, take a look at [the hosted API docs](https://bengreenier.github.io/webrtc-unity-plugin).\n\nFor more information, check out [the brief overview video](https://youtu.be/n3eefDynisk).\n\n### Running\n\nIn editor, `Win32` is supported - this means if you're on Windows and you hit \"Play\" in the Unity Editor, your application should just work. For other platforms, one must produce a Unity Player build in order to fully test.\n\n![example v01](./.github/example_v01.gif)\n\n## Contributing\n\nNo contributing guidelines at this time. However, to produce a new `unitypackage` when a new Release is needed, one must use Unity and select these fields:\n\n![producing a unitypackage](./.github/build_package.png)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbengreenier%2Fwebrtc-unity-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbengreenier%2Fwebrtc-unity-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbengreenier%2Fwebrtc-unity-plugin/lists"}