C# Button.onClick.AddListener()未按预期工作

C# Button.onClick.AddListener()未按预期工作,c#,unity3d,C#,Unity3d,在过去的几个小时里,我一直在努力解决这个问题。 我可以访问和编辑按钮的属性,但onClick.AddListener()函数不起作用。这是我的密码: GameObject gameObject; gameObject = Resources.Load("Prefabs/MenuOption") as GameObject; gameObject.GetComponent<Image>().sprite = Resources.Lo

在过去的几个小时里,我一直在努力解决这个问题。 我可以访问和编辑按钮的属性,但onClick.AddListener()函数不起作用。这是我的密码:

GameObject gameObject;
        gameObject = Resources.Load("Prefabs/MenuOption") as GameObject;

        gameObject.GetComponent<Image>().sprite = Resources.Load<Sprite>(option.imgPath);

        Button button = gameObject.GetComponent<Button>();

        // Testing to see if I can change button properties (works)
        ColorBlock colorss = button.colors;
        colorss.highlightedColor = Color.magenta;
        button.colors = colorss;
        
        // This does not work
        button.onClick.AddListener(() => Test(button));
        button.onClick.AddListener(() => { Debug.Log("click"); });

        Instantiate(gameObject, pos, new Quaternion(), GameObject.Find("Canvas").transform);
GameObject游戏对象;
gameObject=Resources.Load(“预置/菜单选项”)作为gameObject;
gameObject.GetComponent().sprite=Resources.Load(option.imgPath);
Button Button=gameObject.GetComponent();
//测试是否可以更改按钮属性(工作)
ColorBlock colorss=按钮颜色;
colorss.highlightedColor=Color.品红色;
button.colors=颜色;
//这行不通
button.onClick.AddListener(()=>Test(button));
button.onClick.AddListener(()=>{Debug.Log(“click”);});
实例化(gameObject,pos,new Quaternion(),gameObject.Find(“Canvas”).transform);
下面是预制件的一个实例:


如果有人知道我做错了什么,我将非常感激。

订阅实例化游戏对象上的
onClick
事件(而不是你用来实例化另一个对象的游戏对象)应该可以解决你的问题。

我认为订阅实例化游戏对象上的onClick事件(不是在你用来实例化另一个对象的游戏对象上)应该可以解决你的问题。谢谢!这是一件很简单的事情,但我刚开始使用unity,所以我不知道出了什么问题。请不要回答问题。我已回滚/编辑了你的问题并删除了答案。只在答案部分添加答案。