/// <summary>
        /// Sets the current lives to the given value and returns the value (representing the lives with a full heart).
        /// </summary>
        /// <param name="_to">Lives to set as active (with full heart)</param>
        /// <param name="_canExceedMax">If TRUE and the new value is higher than <see cref="MaxLives"/>,
        /// new life objects are created and <see cref="MaxLives"/> is modified accordingly.</param>
        public int SetCurrLives(int _to, bool _canExceedMax = false)
        {
            if (!Validate("MinigamesUILives"))
            {
                return(0);
            }

            if (!_canExceedMax && _to > MaxLives)
            {
                _to = MaxLives;
            }
            if (CurrLives == _to)
            {
                return(CurrLives);
            }

            if (_to < 0)
            {
                _to = 0;
            }
            CurrLives = _to;
            for (int i = 0; i < lives.Count; i++)
            {
                MinigamesUISingleLife life = lives[i];
                if (i < _to)
                {
                    life.Gain();
                }
                else
                {
                    life.Lose();
                }
            }
            _to -= lives.Count;
            while (_to > 0)
            {
                _to--;
                MinigamesUISingleLife life = (MinigamesUISingleLife)Instantiate(LifePrefab, LifePrefab.transform.parent, false);
                life.gameObject.SetActive(true);
                lives.Add(life);
            }
            int actualMaxLives = lives.Count;

            if (MaxLives < actualMaxLives)
            {
                MaxLives = actualMaxLives;
            }
            return(_to);
        }
        /// <summary>
        /// Sets the max lives. Call this before calling any other method.
        /// </summary>
        /// <param name="_maxLives">Max lives</param>
        public void Setup(int _maxLives)
        {
            MaxLives = CurrLives = _maxLives;

            foreach (MinigamesUISingleLife life in lives)
            {
                Destroy(life.gameObject);
            }
            lives.Clear();

            for (int i = 0; i < MaxLives; ++i)
            {
                MinigamesUISingleLife life = (MinigamesUISingleLife)Instantiate(LifePrefab, LifePrefab.transform.parent, false);
                life.gameObject.SetActive(true);
                lives.Add(life);
            }

            IsSetup = true;
        }