mirror of
				https://github.com/DerTyp7/example-top-down-unity.git
				synced 2025-11-03 22:38:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using UnityEngine;
 | 
						|
using UnityEngine.UI;
 | 
						|
using TMPro;
 | 
						|
 | 
						|
public class Calendar : MonoBehaviour
 | 
						|
{
 | 
						|
    TimeManager timeManager;
 | 
						|
    Image prevImage;
 | 
						|
    Transform daysTransform;
 | 
						|
 | 
						|
    [SerializeField]
 | 
						|
    Color currentDayColor;
 | 
						|
    Color originDayColor;
 | 
						|
 | 
						|
    [SerializeField]
 | 
						|
    TextMeshProUGUI monthText;
 | 
						|
    [SerializeField]
 | 
						|
    TextMeshProUGUI yearText;
 | 
						|
    
 | 
						|
 | 
						|
    private void Start()
 | 
						|
    {
 | 
						|
        daysTransform = transform.Find("Days");
 | 
						|
        timeManager = GameObject.Find("GameManager").GetComponent<TimeManager>();
 | 
						|
        originDayColor = daysTransform.Find("1").gameObject.GetComponent<Image>().color;
 | 
						|
    }
 | 
						|
 | 
						|
    void Update()
 | 
						|
    {
 | 
						|
        if(gameObject.activeSelf)
 | 
						|
            RefreshCalendar();
 | 
						|
    }
 | 
						|
 | 
						|
    void RefreshCalendar()
 | 
						|
    {
 | 
						|
        DateTime dateTime = timeManager.GetDateTime();
 | 
						|
 | 
						|
        int counter;
 | 
						|
 | 
						|
        int daysInMonth = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
 | 
						|
 | 
						|
        monthText.text = dateTime.ToString("MMMM");
 | 
						|
        yearText.text = dateTime.ToString("yyyy");
 | 
						|
 | 
						|
        counter = 1;
 | 
						|
        while (counter <= 31)
 | 
						|
        {
 | 
						|
            if (counter >= daysInMonth + 1)
 | 
						|
            {
 | 
						|
                daysTransform.Find(counter.ToString()).gameObject.SetActive(false);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                daysTransform.Find(counter.ToString()).gameObject.SetActive(true);
 | 
						|
            }
 | 
						|
 | 
						|
            counter++;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        if (prevImage != daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>())
 | 
						|
        {
 | 
						|
            if (prevImage != null)
 | 
						|
                prevImage.color = originDayColor;
 | 
						|
 | 
						|
            daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>().color = currentDayColor;
 | 
						|
            prevImage = daysTransform.Find(dateTime.Day.ToString()).gameObject.GetComponent<Image>();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |