Skip to Content

Unity Plugin For Joiplay Apr 2026

string joiSavePath = Path.Combine( Application.externalStorageDirectory, "Android/data/com.joiplay.joiplay/files/MyGameSaves" ); if (!Directory.Exists(joiSavePath)) Directory.CreateDirectory(joiSavePath); // Override persistentDataPath (read-only property — use reflection OR change your save logic) // Simpler: replace every Application.persistentDataPath with custom getter. SaveManager.CustomSavePath = joiSavePath;

// 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); Unity Plugin For Joiplay

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

using System.IO; using UnityEngine; public class JoiPlaySaveRedirect : MonoBehaviour // Alternative: check for unusual data path if (Application

void Update()

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.

// Alternative: check for unusual data path if (Application.dataPath.Contains("/storage/emulated/")) return true; return false;