Возвращаемое значение из sendMessage или альтернативное в единстве webgl - PullRequest
0 голосов
/ 28 февраля 2019

Я использую Unity WebGL для своего проекта и хочу общаться из браузера JavaScript с C #. Один из способов - вызвать функцию C # из JavaScript, используя SendMessage .Я легко звоню, используя этот фрагмент кода в javascript:

gameInstance.SendMessage("MyObjectName","MyFunctionName",myParameter);

Но есть проблема, что он не возвращает никакого значения.Для получения значения я должен реализовать отдельную функцию, которая запускает другую функцию.Могу ли я вернуть значение напрямую?Документы Send Message ясно заявляют, что они не возвращают никакого значения, так что кроме sendMessage есть какой-либо способ получить возвращаемое значение при непосредственном вызове функции?

1 Ответ

0 голосов
/ 28 февраля 2019

Используйте свой пользовательский класс в качестве параметра - например:

public class CustomData
{
    public string Input;
    public string Output;
}

...

CustomData data = new CustomData();
data.Input = "Something";
gameInstance.SendMessage("MyObjectName", "MyFunctionName", data);
//use data.Input inside MyFunctionName like a parameter
//change data.Output inside MyFunctionName
//use data.Output
Debug.Log(data.Output);
...