Example #1
0
    protected internal override void OnUpdate(IFsm <IProcedureManager> procedureOwner, float elapseSeconds, float realElapseSeconds)
    {
        base.OnUpdate(procedureOwner, elapseSeconds, realElapseSeconds);

        if (Input.GetMouseButtonDown(0))
        {
            //TestObject testObject = m_testPool.Spawn("test1");
            //Debug.Log(testObject.Target);
            //m_testPool.Unspawn(testObject.Target);

            HPBarItem item = poolComponent.ShowHP();

            m_ActiveHPBarItems.Add(item);
        }

        if (Input.GetMouseButtonDown(1))
        {
            //TestObject testObject = m_testPool.Spawn("test1");
            //Debug.Log(testObject.Target);
            //m_testPool.Unspawn(testObject.Target);

            if (m_ActiveHPBarItems.Count > 0)
            {
                HPBarItem item = m_ActiveHPBarItems[0];
                m_ActiveHPBarItems.RemoveAt(0);
                poolComponent.HideHP(item);
            }
        }
    }
    protected internal override void Release(bool isShutdown)
    {
        HPBarItem hpBarItem = (HPBarItem)Target;

        if (hpBarItem == null)
        {
            return;
        }

        Object.Destroy(hpBarItem.gameObject);
    }
    public HPBarItem ShowHP()
    {
        HPBarItem       hpBarItem       = null;
        HPBarItemObject hpBarItemObject = m_HPBarItemObjectPool.Spawn();

        if (hpBarItemObject != null)
        {
            hpBarItem = (HPBarItem)hpBarItemObject.Target;
        }
        else
        {
            hpBarItem = Instantiate(m_HPBarItemTemplate);
            Transform transform = hpBarItem.GetComponent <Transform>();
            transform.SetParent(m_HPBarInstanceRoot);
            transform.localScale = Vector3.one;
            m_HPBarItemObjectPool.Register(HPBarItemObject.Create(hpBarItem), true);
        }

        return(hpBarItem);
    }
 public void HideHP(HPBarItem hpBarItem)
 {
     m_HPBarItemObjectPool.Unspawn(hpBarItem);
 }