表达式表示变量、值为预期错误的类型

本文关键字:错误 类型 表示 变量 表达式 | 更新日期: 2023-09-27 18:36:18

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

    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;
}

应该接收我要更改颜色的对象列表(我将存储在列表中)并将其更改为我指定的颜色。此代码存储在 serpeate 类中。

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

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;

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

表达式表示变量、值为预期错误的类型

确实:

return Color;

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