private void Start() { Assert.IsNotNull(worldController); Assert.IsNotNull(newProjectButton); Assert.IsNotNull(theme); Assert.IsNotNull(menu); Assert.IsNotNull(pauseButton); Assert.IsNotNull(speedButton); Assert.IsNotNull(currentDateText); Assert.IsNotNull(playerCompanyMoneyText); Assert.IsNotNull(playerCompanyMoneyText); Assert.IsNotNull(newsBarPanelModel); Assert.IsNotNull(newsBarPanelsParent); for (int i = 0; i < maximumNewsCount; i++) { NewsBarPanel newsBarPanel = Instantiate(newsBarPanelModel); newsBarPanel.transform.SetParent(newsBarPanelsParent, false); newsBarPanel.name = $"NewsBarPanel_{i}"; newsBarPanel.gameObject.SetActive(false); newsBarPanels.Add(newsBarPanel); } newsBarPanelModel.gameObject.SetActive(false); menu.ApplyTheme(theme); }
public void OnDateChanged(DateTime currentDate) { currentDateText.text = currentDate.ToString("yyyy/MM/dd"); for (int i = 0; i < newsBarPanels.Count; i++) { NewsBarPanel newsBarPanel = newsBarPanels[i]; bool visible = newsBarPanel.UpdateDate(currentDate); newsBarPanel.gameObject.SetActive(visible); if (!visible && currentNewsBarPanelIndex > 0) { currentNewsBarPanelIndex -= 1; } } UpdateNewsBarPanelPositions(); }
private void UpdateNewsBarPanelPositions() { int visiblesCount = 0; float panelHeight = Mathf.Abs(newsBarPanelModel.gameObject.GetComponent <RectTransform>().sizeDelta.y); for (int i = 0; i < newsBarPanels.Count; i++) { NewsBarPanel newsBarPanel = newsBarPanels[i]; if (!newsBarPanel.gameObject.activeSelf) { continue; } float positionY = ++visiblesCount * (panelHeight + marginBetweenPanels); newsBarPanel.GetComponent <RectTransform>().anchoredPosition = new Vector3(Screen.width / 2f + 10f, positionY, 0); // TODO : resolution independent } }
public void PushLatestNews(News latestNews) { NewsBarPanel availableNewsBarPanel = null; for (int i = 0; i < newsBarPanels.Count; i++) { if (!newsBarPanels[i].gameObject.activeSelf) { availableNewsBarPanel = newsBarPanels[i]; break; } } if (availableNewsBarPanel == null) { Debug.LogWarning($"GameHudController : maximum displayed news count reached ({maximumNewsCount})."); return; } availableNewsBarPanel.UpdateDisplayedNews(latestNews); availableNewsBarPanel.gameObject.SetActive(true); UpdateNewsBarPanelPositions(); }