Example #1
0
        public void Init(Song _song)
        {
            LevelListTableCell cell = GetComponent <LevelListTableCell>();

            foreach (FieldInfo info in cell.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic))
            {
                info.SetValue(this, info.GetValue(cell));
            }

            Destroy(cell);

            reuseIdentifier = "DownloadCell";

            song = _song;

            songName = string.Format("{0}\n<size=80%>{1}</size>", song.songName, song.songSubName);
            author   = song.authorName;
            StartCoroutine(LoadScripts.LoadSprite(song.coverUrl, this));

            _bgImage.enabled    = true;
            _bgImage.sprite     = Sprite.Create((new Texture2D(1, 1)), new Rect(0, 0, 1, 1), Vector2.one / 2f);
            _bgImage.type       = UnityEngine.UI.Image.Type.Filled;
            _bgImage.fillMethod = UnityEngine.UI.Image.FillMethod.Horizontal;

            switch (song.songQueueState)
            {
            case SongQueueState.Queued:
            case SongQueueState.Downloading:
            {
                _bgImage.color      = new Color(1f, 1f, 1f, 0.35f);
                _bgImage.fillAmount = song.downloadingProgress;
            }
            break;

            case SongQueueState.Downloaded:
            {
                _bgImage.color      = new Color(1f, 1f, 1f, 0.35f);
                _bgImage.fillAmount = 1f;
            }
            break;

            case SongQueueState.Error:
            {
                _bgImage.color      = new Color(1f, 0f, 0f, 0.35f);
                _bgImage.fillAmount = 1f;
            }
            break;
            }
        }