从sendMessage返回值或在unity webgl中替换

问题描述 投票:0回答:1

我正在为我的项目使用Unity WebGL,并希望从浏览器JavaScript到C#进行通信。一种方法是使用SendMessage从JavaScript调用C#函数。我很容易在javascript中使用此代码段进行调用:

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

但是有一个问题是它没有返回任何价值。为了得到一个值,我必须实现一个运行另一个函数的单独函数。我可以直接退货吗?发送消息文档清楚地说明它不会返回任何值,所以除了sendMessage之外还有什么方法可以直接从函数调用中获取返回值吗?

c# unity3d unity-webgl
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.