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

色を変更したいオブジェクトのリスト(リストに保存します)を取り、指定した色に変更する必要があります。このコードは、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;最初のメソッドの最後に連れて行ってくれます。

どうすればこのバグを倒すことができますか?

4

1 に答える 1