次のコードを使用して、いくつかのマテリアルの色を統一して変更しようとしています:
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;
最初のメソッドの最後に連れて行ってくれます。
どうすればこのバグを倒すことができますか?