1

我正在尝试使用以下代码统一更改某些材料的颜色:

    public List<GameObject> targets = new List<GameObject>();
public string name;
public Color setToColor = Color.white;

public Color ChangeObjectMaterialColour()
{

    foreach(GameObject t in targets)
        if(t.renderer != null)
        {
            if(t.renderer.materials != null)
            {
                foreach(Material m in t.renderer.materials)
                    if(m.name.Equals(name))
                        m.color = setToColor;

            }
        }

    return Color;
}

应该接受我想要更改颜色的对象列表(我将存储在列表中)并将其更改为我指定的颜色。此代码存储在一个单独的类中。

然后在我正在调用此方法的另一个类中,我正在执行以下操作:

private ChangeObjectColour colour;

if(hit.collider.gameObject.tag == "Colour1")
{           
    hit.collider.gameObject.renderer.material.color = colour.ChangeObjectMaterialColour();
}

但是,这导致了以下错误:

表达式表示type', where a变量',value' or方法组'是预期的

当我单击它时,Unity 会将我带到return Color;第一个方法的末尾。

我怎样才能打败这个错误?

4

1 回答 1

1

的确:

return Color;

Color打算返回什么?应该这样return setToColor;吗?或者也许整个方法应该是void而不是return 任何东西......

于 2013-10-22T08:51:07.383 回答