Пример #1
0
    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);
    }
Пример #2
0
 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();
 }
Пример #3
0
    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
        }
    }
Пример #4
0
    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();
    }