Exemple #1
0
        void LateUpdate()
        {
            removeList.Clear();

            foreach (KeyValuePair <DamageUI, Entity> entry in uiDictionary)
            {
                Entity   entity = entry.Value;
                DamageUI ui     = entry.Key;

                if (entity != null)
                {
                    Vector3 pos = LevelManager.Instance.Camera.WorldToScreenPoint(entity.EyePosition);
                    if (pos.z > maxDistance || pos.z < 0)
                    {
                        ui.gameObject.SetActive(false);
                    }
                    else
                    {
                        ui.gameObject.SetActive(true);
                        ui.transform.position = pos;
                    }
                }
                else
                {
                    removeList.Add(ui);
                }
            }

            foreach (DamageUI ui in removeList)
            {
                Return(ui);
            }
        }
Exemple #2
0
 public void Return(DamageUI ui)
 {
     if (ui != null)
     {
         uiDictionary.Remove(ui);
         DamageUIPool.Instance?.ReturnObject(uiPrefab.PoolKey, ui);
     }
 }
Exemple #3
0
        public void ShowDamage(Entity entity, float damage)
        {
            DamageUI tempUI = DamageUIPool.Instance.GetObject(uiPrefab.PoolKey);

            tempUI.transform.SetParent(transform);
            uiDictionary.Add(tempUI, entity);
            tempUI.Play(damage);
        }