请先看对象层级视图

Unity Lamba错误集

/// <summary>
    /// 选择关卡的内容对象
    /// </summary>
    public Transform Transform_levelContent;

// Start is called before the first frame update
    void Start()
    {
        ButtonsListenerSetUp();
    }

    private void ButtonsListenerSetUp()
    {
        if (Button_backMainScene) Button_backMainScene.onClick.AddListener(ClickButton_backMain);

        if (Transform_levelContent)
        {
            for (int i = 0; i < Transform_levelContent.childCount; i++)
            {
                Transform_levelContent.GetChild(i).name = (i + 1).ToString();
                Transform_levelContent.GetChild(i).Find("Text").GetComponent<Text>().text = (i + 1).ToString();
                string level = (i + 1).ToString();  //注意这里必须要先在这里赋给变量
                Transform_levelContent.GetChild(i).GetComponent<Button>().onClick.AddListener(() => {
                    ClickButton_levelChoose(level);
                });
              
              /*这样写会得不到正确的值
              Transform_levelContent.GetChild(i).GetComponent<Button>().onClick.AddListener(() => {
                    ClickButton_levelChoose((i + 1).ToString());
                });
              */
            }
        }
    }

 

相关文章:

  • 2021-07-18
  • 2021-05-27
  • 2021-05-09
  • 2021-11-08
  • 2021-08-13
  • 2021-05-21
  • 2021-08-09
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-18
  • 2022-12-23
  • 2021-05-24
  • 2022-01-10
相关资源
相似解决方案