public bool Load()
    {
        if (_prefab != null)
        {
            return(true);
        }

        if (!PoolManager.Pools.ContainsKey("InGame2dRes"))
        {
            Debug.LogError("No InGame2dRes Prefab Loaded!!!");
            return(false);
        }
        //
        //
        _spawnPool = PoolManager.Pools["InGame2dRes"];
        if (!_spawnPool.prefabs.ContainsKey("Canvas_Combo"))
        {
            return(false);
        }
        _prefab = _spawnPool.Spawn("Canvas_Combo");
        //
        //
        _view = _prefab.GetComponent <UIGameComboView> () ?? _prefab.gameObject.AddComponent <UIGameComboView> ();
        CloseCombo();

        // add combo button event
        _view._btnChow.onClick.RemoveAllListeners();
        _view._btnChow.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGameChow(this); });
        _view._btnKong.onClick.RemoveAllListeners();
        _view._btnKong.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGameKong(this); });
        _view._btnPong.onClick.RemoveAllListeners();
        _view._btnPong.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGamePong(this); });
        _view._btnWin.onClick.RemoveAllListeners();
        _view._btnWin.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGameWin(this); });
        _view._btnPass.onClick.RemoveAllListeners();
        _view._btnPass.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGamePass(this); });
        _view._btnBaoTing.onClick.RemoveAllListeners();
        _view._btnBaoTing.onClick.AddListener(delegate() { UIOperation.Instance.OnClickGameBaoTing(this); });

        // init combo effect
        //_comboAnima = new Dictionary<MahjongPlayer.ComboType, UIControllerAnimation.Type> ();
        //_comboAnima.Add(MahjongPlayer.ComboType.CHOW, UIControllerAnimation.Type.CHOW);
        //_comboAnima.Add(MahjongPlayer.ComboType.PONG, UIControllerAnimation.Type.PONG);
        //_comboAnima.Add(MahjongPlayer.ComboType.KONG, UIControllerAnimation.Type.KONG);
        //_comboAnima.Add(MahjongPlayer.ComboType.KONG_DARK, UIControllerAnimation.Type.KONG_DARK);
        //_comboAnima.Add(MahjongPlayer.ComboType.KONG_TURN, UIControllerAnimation.Type.KONG_TURN);
        //_comboAnima.Add(MahjongPlayer.ComboType.BAO_TING, UIControllerAnimation.Type.BAO_TING);
        //_comboAnima.Add(MahjongPlayer.ComboType.WIN, UIControllerAnimation.Type.HU);
        //_comboAnima.Add(MahjongPlayer.ComboType.WIN_AFTER_KONG_TURN, UIControllerAnimation.Type.WIN_AFTER_KONG_TURN);
        //_comboAnima.Add(MahjongPlayer.ComboType.WIN_SELF, UIControllerAnimation.Type.ZI_MO);

        CloseViewRoot();
        AddEffect();
        return(true);
    }
 public void Unload()
 {
     if (_spawnPool != null && _spawnPool.IsSpawned(_prefab.transform))
     {
         _spawnPool.Despawn(_prefab.transform, _spawnPool.transform);
     }
     _spawnPool = null;
     _prefab    = null;
     _view      = null;
     //
     //if (_comboAnima != null)
     //	_comboAnima.Clear ();
     //_comboAnima = null;
     _spawnPool = null;
 }