Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
WebPlayer - website JavaScript two-way communication example. The goal here is to keep the website JS code handy. Untested.
using UnityEngine;
using System.Collections;
public delegate void JSCallback (string value);
public class WebsiteCommunication
public TextAsset stringRequest;
public void RequestString (JSCallback callback, string prompt, string defaultValue = "")
if !(callback.Target is MonoBehaviour)
throw new System.ArgumentException ("Callback must be on a MonoBehaviour!");
string evalText =
stringRequest.text.Replace (
"%GO_NAME%", ((MonoBehaviour)callback.Target)
).Replace (
"%HANDLER_NAME", callback.Method.Name
).Replace (
"%PROMPT_STRING%", prompt
).Replace (
"%DEFAULT_VALUE%", defaultValue
Application.ExternalEval (evalText);
String request variable is populated with a reference to a text file asset containing
the following JS code:
GetUnity ().SendMessage ("%GO_NAME%", "%HANDLER_NAME%", prompt ("%PROMPT_STRING%", "%DEFAULT_VALUE%"));
// Example usage:
private string playerName = "Nobody";
void Start ()
GetComponent<WebsiteCommunication> ().RequestString (OnReceiveName, "What is your name?", playerName);
void OnReceiveName (string name)
playerName = name;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment