// Update is called once per frame
    void Update()
    {
        if (m_OldRefNpc != m_RefNpc)
        {
            //lz-2016.10.10 每次更新要清除以前的Entities
            ClearEntites();
//            CSCreator creator = CSUI_MainWndCtrl.Instance.Creator;
            List <CSEntity> entities = m_RefNpc.GetProtectedEntities();
            m_RefNpc.GuardEntities = entities;
            if (entities != null)
            {
                foreach (CSEntity cse in entities)
                {
                    CSUI_EntityState es = Instantiate(m_EntityStatePrefab) as CSUI_EntityState;
                    es.transform.parent        = m_EntityRootUI.transform;
                    es.transform.localPosition = Vector3.zero;
                    es.transform.localRotation = Quaternion.identity;
                    es.transform.localScale    = Vector3.one;

                    es.m_RefCommon = cse;

                    m_EntitesState.Add(es);

                    cse.AddEventListener(OnEntityEventListener);
                }

                m_EntityRootUI.repositionNow = true;
                m_ScrollBar.scrollValue      = 0;
            }

            m_OldRefNpc = m_RefNpc;
        }
    }
    void OnEntityEventListener(int event_id, CSEntity entity, object arg)
    {
        CSCommon csc = entity as CSCommon;

        if (csc == null)
        {
            return;
        }
        if (event_id == CSConst.eetDestroy)
        {
            csc.RemoveEventListener(OnEntityEventListener);

            CSUI_EntityState es = m_EntitesState.Find(item0 => item0.m_RefCommon == csc);
            if (es != null)
            {
                GameObject.Destroy(es.gameObject);
                m_EntitesState.Remove(es);
                m_EntityRootUI.repositionNow = true;
            }
        }
    }