private void InitUsageButtons()
    {
        int i = 0;

        foreach (KeyValuePair <string, Item.Usage> ud in _item.usages)
        {
            Item.Usage u    = ud.Value;
            string     name = ud.Key;

            InitButton(u, name, i);
            i++;
        }
    }
    private void InitButton(Item.Usage u, string name, int i)
    {
        GameObject    b      = Instantiate(buttonPrefab);
        RectTransform brect  = b.GetComponent <RectTransform>();
        Button        button = b.GetComponent <Button>();

        //Set button transform
        brect.SetParent(rectTransform);
        Vector3 newPos = new Vector3(0, 0, brect.localPosition.z);

        newPos.x += padding;
        newPos.y -= padding + (i * brect.sizeDelta.y);

        brect.transform.localPosition = newPos;


        //Set Button onClick listener
        button.onClick.AddListener(() => u(new object[] { null, uIItem }));

        button.GetComponentInChildren <Text>().text = name;
    }