unity中利用sentmessage发送消息传递多个参数

今天写一下遇到的问题记录一下利用sentmessage传递多个参数,就是把参数放在一个数组中,然后传递这个数组,接收消息的函数接收数组,在拆分开

for (int r = 0; r < winRow; r++)
            {
                for (int c = 0; c < winCol; c++)
                {

                   int[] para = new int[2];

                    para[0] = (curRow - winRow / 2) + r;
                    para[1] = (curCol - winCol / 2) + c;

                    areaBlockSprite[r, c].SendMessage("SetRowCol",para);


                }
            }

void SetRowCol(int[] oPara)
    {
        row = oPara[0];
        col = oPara[1];
        StartCoroutine("RefreshTexture");
    }


Unity,可以使用消息系统来发送消息并在另一个Script处理消息。Unity提供了SendMessage和BroadcastMessage方法来发送消息,这些方法可以在GameObject上调用。下面是一个简单的例子: 假设我们有两个脚本:Sender和Receiver。Sender脚本有一个公共方法SendMessageToReceiver,我们希望在该方法发送一条消息,并在Receiver脚本处理该消息。 在Sender脚本,我们可以使用SendMessage方法来发送消息: ```csharp public class Sender : MonoBehaviour { public void SendMessageToReceiver() { GameObject receiver = GameObject.Find("Receiver"); receiver.SendMessage("OnMessageReceived", "Hello World!", SendMessageOptions.RequireReceiver); } } ``` 在这个例子,我们首先通过GameObject.Find方法找到名为“Receiver”的游戏对象,然后使用SendMessage方法来发送一条名为“OnMessageReceived”的消息,消息内容为“Hello World!”。 在Receiver脚本,我们可以实现OnMessageReceived方法来处理消息: ```csharp public class Receiver : MonoBehaviour { public void OnMessageReceived(string message) { Debug.Log("Received message: " + message); } } ``` 在这个例子,我们定义了一个名为OnMessageReceived的公共方法,该方法接受一个字符串参数message,并在控制台输出接收到的消息。 当我们在Sender脚本调用SendMessageToReceiver方法时,Unity会在Receiver脚本自动调用OnMessageReceived方法,并将消息“Hello World!”作为参数递给该方法。 注意:使用SendMessage方法发送消息可能会对性能产生一定的影响。如果您需要高效的通信方式,可以考虑使用事件或委托等其他方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值