我正在将Unity WebGL用于我的项目,并希望从浏览器JavaScript到C#进行通信。 一种方法是使用 SendMessage 从JavaScript调用C#函数。我可以使用javascript中的以下代码片段轻松拨打电话:
gameInstance.SendMessage("MyObjectName","MyFunctionName",myParameter);
但是有一个问题,它没有返回任何值。为了获得一个值,我必须实现一个运行另一个功能的单独功能。我可以直接返回价值吗?发送消息文档明确指出它不返回任何值,因此除了sendMessage之外,还有其他方法可以直接从函数调用中获取返回值吗?
答案 0 :(得分:0)
使用自定义类作为参数-例如:
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);