我正在尝试使用以下代码统一更改某些材料的颜色:
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;
第一个方法的末尾。
我怎样才能打败这个错误?