void DrawMembersUI()
    {
        ClearParamList();
        Vector2 pos       = new Vector2(10, 20);
        float   maxHeight = 0;

        for (int j = 0; j < Selected.Params.paramsList.Count; j++)
        {
            AParam   item = Selected.Params.paramsList[j];
            MemberUI mu   = Instantiate(prefMemberUI);
            mu.Own = Selected;
            mu.GetComponentInChildren <Button>().interactable = uplockParam;
            mu.transform.SetParent(paramPanel.transform);
            mu.GetComponent <RectTransform>().anchoredPosition = pos;
            mu.GeneNameText.text = item.Name;
            mu.SetParam(item);
            paramElList.Add(mu);
            mu.Position = pos;
            float height = DrawParamsUI(mu);
            if (height > maxHeight)
            {
                maxHeight = height;
            }
            pos.x += mu.Size.x;
            Vector2 sz = paramPanel.GetComponent <RectTransform>().sizeDelta;
            sz = new Vector2(pos.x, maxHeight + 10);
            paramPanel.GetComponent <RectTransform>().sizeDelta = sz;
        }
    }
    float DrawParamsUI(MemberUI memUI)
    {
        AParam  mem = memUI.Param;
        Vector2 pos = memUI.Position;
        float   sy  = 0;

        for (int i = 0; i < mem.paramsList.Count; i++)
        {
            ParamUI pu = Instantiate(prefParamUI);
            pu.Own = Selected;
            pu.Button.interactable = memUI.Param.IsActive;
            pu.transform.SetParent(paramPanel.transform);
            pos.y += pu.Size.y + 5;
            sy     = pu.Size.y;
            pu.GetComponent <RectTransform>().anchoredPosition = pos;
            pu.Param = mem.paramsList[i];
            pu.ParamNameText.text = pu.Param.ShortName;
            pu.ParamValText.text  = pu.Param.ToString();
            memUI.paramList.Add(pu);
        }
        return(pos.y + sy);
    }
        static void Main(string[] args)
        {
            MemberUI ui = new MemberUI(new MemberController());

            ui.Run();
        }
        public void SelectResponsible(MemberUI responsible)
        {
            LogManager.GetLog(GetType()).Info("Select member");
            if (responsible.Selected == true)
            {
                SelectedResponsible.Selected = false;
                SelectedResponsible = null;
            }
            else
            {
                if (SelectedResponsible != null)
                {
                    SelectedResponsible.Selected = false;
                }

                responsible.Selected = true;
                SelectedResponsible = responsible;
            }

            ShowConfirmButton = SelectedResponsible != null;
        }