private void DrawUnitsBar(UnitBar unitBar, List <WorldObject> indicatedObjects, string indicatorName) { indicatedObjects = indicatedObjects .Where(p => ((p is Unit) && ((Unit)p).IsMajor()) || (p is BossPart) || (p is Building)) .ToList(); var indicators = unitBar.GetIndicators(); var indicatedUnits = indicators.Select(p => p.GetIndicatedObject()).ToList(); int newIndicatorsCounter = 0; for (int i = 0; i < indicatedUnits.Count; i++) { if ( indicatedObjects.Count <= i || !indicatedObjects[i] || !indicatedUnits[i] || indicatedObjects[i].ObjectId != indicatedUnits[i].ObjectId ) { indicatedUnits = new List <WorldObject>(); var indicatorsWrapper = unitBar.GetIndicatorsWrapper(); new List <Indicator>( indicatorsWrapper.transform .GetComponentsInChildren <Indicator>() ) .ForEach(s => Destroy(s.gameObject)); break; } } indicatedObjects .ToList().ForEach(p => { if (!indicatedUnits.Contains(p)) { var indicatorsWrapper = unitBar.GetIndicatorsWrapper(); var newIndicatorObject = GameObject.Instantiate(ResourceManager.GetUIElement(indicatorName)); var newIndicator = newIndicatorObject.GetComponent <Indicator>(); if (newIndicator) { newIndicator.Init(p); newIndicator.transform.parent = indicatorsWrapper.transform; var rectTransform = newIndicatorObject.GetComponent <RectTransform>(); rectTransform.anchoredPosition = new Vector2(0, -30 - 69 * (indicatedUnits.Count() + newIndicatorsCounter)); rectTransform.sizeDelta = new Vector2(0, 60); newIndicatorsCounter++; } } }); if (newIndicatorsCounter > 0) { unitBar.Update(); } }
private void Awake() { Instance = this; print(GameManager.Instance.MainTypeUnit.Count); Units = new List <Unit>(); Towers = new List <Unit>(); enemyTowers = new List <Unit>(); enemyUnits = new List <Unit>(); PhotonView = GetComponent <PhotonView>(); SceneManager.sceneLoaded += OnSceneFinishedLoading; }
public PlayerUI(UnitBar hpBar, UnitBar energyBar, AchievementController achController) { this.hpBar = hpBar; this.energyBar = energyBar; this.achController = achController; }