Turn any phone into a Unity controller.

No app, no SDK on the player’s side. Drop in a Unity package, ship over a hosted relay, or run free over LAN for in-person events.

Install video poster

Install video lands in step 4.3 day 2. Until then, this poster + the quickstart cover it.

  • Phone displaying a directional pad controller UI

    Phone-as-controller, no install

    Players scan a QR code. The web controller opens in their browser. There is nothing to download, no App Store review, no OS-version churn — every phone is supported.

  • Unity Inspector showing the PhoneControllerManager component with session code and QR

    Drop-in Unity SDK

    One MonoBehaviour is the entire mental model. Drag the prefab into your scene, pick a template, hit play. Twelve widget types compose into anything from a d-pad to a drawing canvas.

  • Diagram showing a phone connecting to the Unity host via either the cloud relay or LAN

    Cloud or LAN, your call

    Default to the hosted relay at relay.pairkit.dev for remote players. Switch to LAN mode for in-person events — Unity hosts the relay in-process, phones connect over Wi-Fi, no internet, no cost.

This is all the code you write.

Move with the d-pad. The rest of the SDK looks like this.

using PairKit;
using UnityEngine;

public class MoveWithPhone : MonoBehaviour
{
    [SerializeField] private PhoneControllerManager manager;

    void Awake()
    {
        manager.OnInput += (player, evt) =>
        {
            if (evt.WidgetId == "dpad")
            {
                var dir = evt.GetVector2();
                transform.position += new Vector3(dir.x, 0, dir.y) * Time.deltaTime * 5f;
            }
        };
    }
}

Read the quickstart →