Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (Application.isEditor)
        {
            //UpdateTest();
        }

        //lz-2016.11.03 有数据的情况下保证每一帧都有显示有效数据
        m_CurFrameHasShow = false;
        while (!m_CurFrameHasShow && null != m_HPEventData) //lz-2016.11.07 有可能会变空
        {
            HPChangeEventData data = m_HPEventData.Pop();
            //lz-2016.11.03 因为这里是用栈处理的,只显示最新的,如果堆积超时的就不要了
            if (null == data || Time.realtimeSinceStartup - data.m_AddTime >= m_DataOutTime)
            {
                m_CurFrameHasShow = true;
            }
            else
            {
                if (null != data.m_Transfrom && null != data.m_Self)
                {
                    Pathea.PeEntity entity = data.m_Self.GetComponent <Pathea.PeEntity>();
                    //lz-2016.11.03 entity没有死,并且Transfrom还存在的时候才显示HPChange效果
                    if (null != entity && !entity.IsDeath())
                    {
                        if (ShowHPChange(data.m_HPChange, data.m_Transfrom.position, data.m_Proto))
                        {
                            m_CurFrameHasShow = true;
                        }
                    }
                }
            }
        }
    }
Example #2
0
        public void OnHpChange(SkEntity self, SkEntity caster, float hpChange)
        {
            if (null == self)
            {
                return;
            }
            SkAliveEntity skAlive = self as SkAliveEntity;

            if (null != skAlive)
            {
                PeTrans    trans  = skAlive.Entity.peTrans;
                CommonCmpt common = skAlive.Entity.commonCmpt;
                if (null != trans)
                {
                    HPChangeEventData data = new HPChangeEventData();
                    data.m_Self      = self;
                    data.m_HPChange  = hpChange;
                    data.m_Transfrom = trans.trans;
                    data.m_Proto     = (null != common && null != common.entityProto)?common.entityProto.proto:EEntityProto.Doodad;
                    data.m_AddTime   = Time.realtimeSinceStartup;
                    _datas.Push(data);
                }
            }
        }