public void Cmd_DebugAdd( )
    {
        {
            var vm = new LoginCharInfoPresenter();
            vm.CharName = _base.ToString();

            LoginCharList.Add(_base, vm);
            _base++;
        }
    }
    public void Msg_game_CharListACK(NetworkPeer peer, gamedef.CharListACK msg)
    {
        LoginCharList.Clear();

        for (int i = 0; i < msg.CharInfo.Count; i++)
        {
            var sm = new LoginCharInfoPresenter();
            sm.CharName = msg.CharInfo[i].CharName;
            LoginCharList.Add(i, sm);
        }
    }
    public override void Bind(Framework.BasePresenter presenter)
    {
        _Presenter = presenter as LoginCharInfoPresenter;

        var trans = this.transform;

        _SelectChar = trans.Find("SelectChar").GetComponent <Button>();
        _CharName   = trans.Find("SelectChar/CharName").GetComponent <Text>();

        _SelectChar.onClick.AddListener(_Presenter.Cmd_SelectChar);
        _Presenter.OnCharNameChanged += delegate()
        {
            _CharName.text = _Presenter.CharName;
        };
        if (_Presenter.CharName != null)
        {
            _CharName.text = _Presenter.CharName;
        }
    }