public void SetUpSkillLearningView(HLHNPC npc, CallBack quitCallBack)
        {
            this.currentNpc = npc;

            GameManager.Instance.soundManager.PlayAudioClip(CommonData.merchantAudioName);

            gameObject.SetActive(true);

            this.skillGoodsIds = npc.npcSkillIds;

            this.quitCallBack = quitCallBack;

            skillGoodsPool.AddChildInstancesToPool(skillGoodsContainer);

            for (int i = 0; i < skillGoodsIds.Count; i++)
            {
                SkillGoodsInTrade skillGoodsDetail = skillGoodsPool.GetInstance <SkillGoodsInTrade>(skillGoodsModel.gameObject, skillGoodsContainer);

                Skill skill = GameManager.Instance.gameDataCenter.allSkills.Find(delegate(Skill obj)
                {
                    return(obj.skillId == skillGoodsIds[i]);
                });

                skillGoodsDetail.SetupSkillDetailInNPC(skill, SkillGoodsSelectCallBack);

                skillGoodsDetail.SetUpSelectedIcon(false);

                allSkillGoods.Add(skillGoodsDetail);
            }

            skillNumLeftText.text = string.Format("剩余技能点: {0}", Player.mainPlayer.skillNumLeft);

            for (int i = 0; i < allLearnedSkillDetails.Length; i++)
            {
                SimpleSkillDetail learnedSkillDetail = allLearnedSkillDetails[i];

                if (i < Player.mainPlayer.allLearnedSkills.Count)
                {
                    Skill learnedSkill = Player.mainPlayer.allLearnedSkills[i];

                    learnedSkillDetail.SetUpSimpleSkillDetail(learnedSkill, LearnedSkillSelectCallBack);
                }
                else
                {
                    learnedSkillDetail.ClearSimpleSkillDetail();
                }

                learnedSkillDetail.SetUpSelectedIcon(false);
            }

            //skillDetailInTrade.InitskilldetailInTrade(UpdateLearnedSkillsPlane);
            skillDetailInTrade.ClearSkillDetailInTrade();

            EnterSkillGoodsTradeViewDisplay();
        }
        /// <summary>
        /// 技能商品被选中的回调
        /// </summary>
        /// <param name="skill">Skill.</param>
        private void SkillGoodsSelectCallBack(Skill skill)
        {
            for (int i = 0; i < skillGoodsIds.Count; i++)
            {
                SkillGoodsInTrade skillDetail = allSkillGoods[i];

                skillDetail.SetUpSelectedIcon(skillGoodsIds[i] == skill.skillId);
            }

            currentSelectedSkill = skill;

            for (int i = 0; i < allLearnedSkillDetails.Length; i++)
            {
                allLearnedSkillDetails[i].SetUpSelectedIcon(false);
            }

            skillDetailInTrade.SetUpSkillDetailInTrade(skill);
        }