NpcSpeakSentenseItem CreatOneSentense(NpcSpeakSentenseItem _prefab, Transform _parent)
    {
        NpcSpeakSentenseItem item = Instantiate(_prefab) as NpcSpeakSentenseItem;

        item.gameObject.SetActive(true);
        item.transform.parent        = _parent;
        item.transform.localPosition = Vector3.zero;
        item.transform.localRotation = Quaternion.identity;
        item.transform.localScale    = Vector3.one;

        return(item);
    }
    public void SayOneWord(string _content, float _interval)
    {
        if (mSpeakSentenseList.Count > 0)//提前结束上一句话
        {
            mSpeakSentenseList[0].AheadDisappear();
        }

        NpcSpeakSentenseItem item = CreatOneSentense(mSpeakSentensePrefab, SpeakTrans);

        mSpeakSentenseList.Add(item);
        item.OnDestroySelfEvent += OnDestroySentenseSelf;
        item.SayOneWord(_content, _interval);

        UpdateSentensePos();
    }
 void OnDestroySentenseSelf(NpcSpeakSentenseItem _item)
 {
     mSpeakSentenseList.Remove(_item);
 }
    void InitOverHead()
    {
        Transform trans = transform.FindChild("MissionMark");

        if (null == trans)
        {
            Debug.LogWarning("no text mesh to show mission mark");
            return;
        }

        missionMark = trans.GetComponent <MeshRenderer>();


        //***********************************************
        trans = transform.FindChild("Revival");
        if (null == trans)
        {
            Debug.LogWarning("no Revival found");
            return;
        }

        revivalMark = trans.GetComponent <MeshRenderer>();
        SetRevivalMark(false, 0f);


        trans = transform.FindChild("Namlb");
        if (null == trans)
        {
            Debug.LogWarning("no text show Namlb");
            return;
        }
        NameLb = trans;

        trans = trans.transform.FindChild("Label");
        if (null == trans)
        {
            Debug.LogWarning("no text show Namlb");
            return;
        }
        mLable = trans.GetComponent <UILabel>() as UILabel;

        trans = NameLb.transform.FindChild("Icon");
        if (null == trans)
        {
            Debug.LogWarning("no text show Icon");
            return;
        }
        mIcon = trans.GetComponent <UISprite>() as UISprite;

        trans       = transform.FindChild("Player");
        PlayerTrans = trans;
        if (PlayerTrans != null)
        {
            trans = PlayerTrans.FindChild("BloodItemPlayer");
        }
        if (trans != null)
        {
            mBloodPlayer     = trans.GetComponent <UISlider>() as UISlider;
            mPlayerBloodcmpt = trans.GetComponent <Bloodcmpt>();
        }

        trans    = transform.FindChild("NPc");
        NpcTrans = trans;
        if (NpcTrans != null)
        {
            trans = NpcTrans.FindChild("BloodItemNpc");
        }
        if (trans != null)
        {
            mBloodNpc     = trans.GetComponent <UISlider>() as UISlider;
            mNpcBloodcmpt = trans.GetComponent <Bloodcmpt>();
        }

        trans        = transform.FindChild("Monster");
        MonsterTrans = trans;
        if (MonsterTrans != null)
        {
            trans = MonsterTrans.FindChild("BloodItemMon");
        }
        if (trans != null)
        {
            mBloodMonster     = trans.GetComponent <UISlider>() as UISlider;
            mMonsterBloodcmpt = trans.GetComponent <Bloodcmpt>();
        }


        trans      = transform.FindChild("Speak");
        SpeakTrans = trans;
        if (SpeakTrans != null)
        {
            mSpeakSentensePrefab = SpeakTrans.FindChild("SentencePrefab").GetComponent <NpcSpeakSentenseItem>();
        }

        return;
    }