Подскажите пожалуйста как на HTML странице из JavaScript вызвать функцию в Unity3d Web Player.
Нашёл SendMessage, но почему-то мою функцию не вызывает.
Логика следующая:
1. В приложении Unity3d нажимаем на кнопку Test. Срабатывает Application.ExternalCall("CallJS", new object[] { "Test1" }); которая вызывает на HTML странице JavaScript функцию CallJS.
2. Вункция CallJS использует GetUnity().SendMessage("StartUI", "JSCallback", str1); для вызова функции JSCallback в приложении Unity3d в классе StartUI. JSCallback должна установить в переменной str1 переданное значение, которое должно отобразиться GUILayout.Label(str1, GUIStyle.none);
Но этого почему-то не происходит. GetUnity().SendMessage("StartUI", "JSCallback", str1); почему-то не срабатывает и не выдаёт никаких ошибок.
Может кто-то сталкивался с побобным и может подсказать в чём моя ошибка?
В приложении Unity3d находится следующий код:
Синтаксис:
Используется csharp
public class StartUI : MonoBehaviour
{
private string str1;
...
private void OnGUI()
{
GUILayout.BeginArea(new Rect(0, 0, Screen.width, Screen.height));
GUILayout.Label(str1, GUIStyle.none);
if (GUILayout.Button("Test", GUILayout.Width(150)) == true)
{
if (Application.isWebPlayer == true)
{
Application.ExternalCall("CallJS", new object[] { "Test1" });
}
}
GUILayout.EndArea();
}
public void JSCallback(string str2)
{
str1 = "str1: " + str2;
}
}
{
private string str1;
...
private void OnGUI()
{
GUILayout.BeginArea(new Rect(0, 0, Screen.width, Screen.height));
GUILayout.Label(str1, GUIStyle.none);
if (GUILayout.Button("Test", GUILayout.Width(150)) == true)
{
if (Application.isWebPlayer == true)
{
Application.ExternalCall("CallJS", new object[] { "Test1" });
}
}
GUILayout.EndArea();
}
public void JSCallback(string str2)
{
str1 = "str1: " + str2;
}
}
На HTML странице находится следующий код:
Синтаксис:
Используется javascript
function CallJS(str1)
{
GetUnity().SendMessage("StartUI", "JSCallback", str1);
}
{
GetUnity().SendMessage("StartUI", "JSCallback", str1);
}