Advertisement
Guest User

Untitled

a guest
Jun 30th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. <script type="text/javascript" language="javascript">
  2. <!--
  3. //initializing the WebPlayer
  4. var u = new UnityObject2();
  5. u.initPlugin(jQuery("#unityPlayer")[0], "Example.unity3d");
  6.  
  7. function SaySomethingToUnity()
  8. {
  9. u.getUnity().SendMessage("MyObject", "MyFunction", "Hello from a web page!");
  10. }
  11. -->
  12. </script>
  13.  
  14. public static void Evaluate(string js, System.Action<string> callback);
  15.  
  16. public class JSEvaluator : MonoBehaviour {
  17.  
  18. private int id;
  19. Dictionary<int, Action<string>> callbacks;
  20.  
  21. public static void Evaluate(string js, Action<string> callback) {
  22. ++id;
  23. callbacks[id] = callback;
  24. // ':' is separator to know where id ends
  25. Application.ExternalCall("evaluate", id.ToString() + ":" + js);
  26. }
  27.  
  28. private void OnJSResult(string result) {
  29. var stringSeparators = new string[] {":"};
  30. var res = source.Split(stringSeparators, StringSplitOptions.None);
  31. var i = Convert.ToInt32(res[0]);
  32. var cb = callbacks[i];
  33. var rem = res[0] + ":";
  34. cb(result.Remove(result.IndexOf(rem), rem.Length););
  35. callbacks.Remove(i);
  36. }
  37.  
  38. }
  39.  
  40. function evaluate(input) {
  41. var inp = input.split(":");
  42. var id = parseInt(inp[0]);
  43. inp.shift();
  44. var arg = inp.join(":");
  45. var result = eval(arg);
  46. // for UnityPlayer you need to u.getUnity().SendMessage
  47. SendMessage("GameObjectName", "OnJSResult", result);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement