Unity Plugin For Joiplay -

if (JoiPlayDetector.IsRunningOnJoiPlay()) Debug.Log("Running on JoiPlay — enabling touch adapters"); gameObject.AddComponent<JoiPlayInputAdapter>(); gameObject.AddComponent<JoiPlaySaveRedirect>(); gameObject.AddComponent<JoiPlayBackButton>(); QualitySettings.vSyncCount = 0; // Performance Application.targetFrameRate = 60;

// JoiPlay sets specific environment variables string joiPlayVar = System.Environment.GetEnvironmentVariable("JOIPLAY_RUNTIME"); if (!string.IsNullOrEmpty(joiPlayVar)) return true;

void Awake()

if (!JoiPlayDetector.IsRunningOnJoiPlay()) return;

A “Unity Plugin for JoiPlay” is not a binary library but a scripting layer that adapts your existing Unity game to JoiPlay’s non-standard environment. By adding detection, input remapping, save redirection, and back-button handling, you can make your PC-targeted Unity game playable on Android via JoiPlay with minimal friction. Unity Plugin For Joiplay

JoiPlay forwards touch as mouse clicks, but often with wrong coordinates or missing right-click.

if (Application.platform == RuntimePlatform.Android && Input.GetKeyDown(KeyCode.Escape)) // Simulate Escape key for Unity UI or game menus if (JoiPlayDetector.IsRunningOnJoiPlay()) // Send Escape key event var escEvent = new Event keyCode = KeyCode.Escape, type = EventType.KeyDown ; EventSystem.current?.SetSelectedGameObject(null); else // Native Android back behavior Application.Quit(); if (JoiPlayDetector

// Single tap = left click if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Began) SimulateMouseClick(Input.GetTouch(0).position, 0); // Two-finger tap = right click if (Input.touchCount == 2 && Input.GetTouch(1).phase == TouchPhase.Began) Vector2 center = (Input.GetTouch(0).position + Input.GetTouch(1).position) / 2f; SimulateMouseClick(center, 1);

void SimulateMouseClick(Vector2 screenPos, int button) if (Application