Exemple #1
0
        public void Execute()
        {
            var entities = needHealthBar.GetEntities();

            for (var index = 0; index < entities.Length; index++)
            {
                var entity = entities[index];
                if (!entity.hasView)
                {
                    log.Error("Если есть NeedHealthBar, то обязательно должен быть view");
                    continue;
                }

                //Создать полоску
                ServerGameEntity healthBarEntity = gameContext.CreateEntity();
                GameObject       prefab          = healthBarStorage.GetPrefab();
                GameObject       go = Object.Instantiate(prefab);
                go.Link(entity);
                go.transform.position = new Vector3(0, healthBarHeightStorage.GetHeight(entity.viewType.value));
                Slider slider = go.transform.Find("Slider").GetComponent <Slider>();
                if (slider == null)
                {
                    log.Error("Не найден слайдер на полоске хп");
                    continue;
                }

                TextMeshProUGUI username = go.transform.Find("Text_Username").GetComponent <TextMeshProUGUI>();
                if (username == null)
                {
                    log.Error("Не найден text username на полоске хп");
                    continue;
                }

                TextMeshProUGUI healthPoints = go.transform.Find("Slider/Text_HealthPoints")
                                               .GetComponent <TextMeshProUGUI>();
                if (healthPoints == null)
                {
                    log.Error("Не найден text healthPoints на полоске хп");
                    continue;
                }


                healthBarEntity.AddView(go);
                healthBarEntity.AddTransform(go.transform);
                healthBarEntity.AddHealthBar(slider, username, healthPoints, entity);

                if (entity.hasHealthBarParent)
                {
                    log.Error("У этой сущности не должно быть этого компонета.");
                    continue;
                }
                entity.AddHealthBarParent(healthBarEntity);
            }
        }