小编Joe*_*des的帖子

.SendMessage崩溃Unity C#

我正在使用OverlapSphere来检测对象的某个半径内的所有碰撞器.然后我过滤掉了一些我不在乎的东西.剩下的几个,我尝试向这些对象发送消息以更新其渲染颜色.每当它发送消息时,团结就会冻结.我试着做一些研究,我能找到的最好的东西是无限循环可以冻结它.但我认为没有潜力.这是代码:

发送消息的对象:

void sendmyMessage(bool status)
{
    Collider[] tiles = Physics.OverlapSphere(gameObject.transform.position, 10);

    int i = 0;
    while (i < tiles.Length)
    {
        if(tiles[i].tag == "Tile")
        {
            //turn light on
            if (status == true)
            {
                tiles[i].SendMessage("Highlight", true);
                i++;
            }

            //turn light off
            if (status == false)
            {
                tiles[i].SendMessage("Highlight", false);
                i++;
            }
        }     
    }
}
Run Code Online (Sandbox Code Playgroud)

对象接收消息:

void Highlight(bool status)
{
    //turn light on
    if(status == true)
    {
        gameObject.GetComponent<Renderer>().material.color = new Color(0, 0, 0);
    }

    //turn light off
    if(status == false)
    {
        gameObject.GetComponent<Renderer>().material.color = new …
Run Code Online (Sandbox Code Playgroud)

c# sendmessage unity-game-engine

1
推荐指数
1
解决办法
267
查看次数

标签 统计

c# ×1

sendmessage ×1

unity-game-engine ×1