Commit 3958d258 authored by 16이상민's avatar 16이상민

Refactoring class 'TrackManager' and 'MotionView'.

parent b5ddc19c
This diff is collapsed.
using System.Collections; using System.Collections.Generic;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI; using UnityEngine.UI;
public class TrackManager : MonoBehaviour { public class TrackManager : MonoBehaviour {
...@@ -21,41 +19,22 @@ public class TrackManager : MonoBehaviour { ...@@ -21,41 +19,22 @@ public class TrackManager : MonoBehaviour {
[SerializeField] [SerializeField]
Texture2D[] backgrounds; Texture2D[] backgrounds;
private int currentBackgroundIndex = 0; private int textureID = 0;
Texture buffer;
public Text Artist; public Text Artist;
public Text BPM; public Text BPM;
private GameObject selectedTrackItem = null; private GameObject selected = null;
private void TrackBrowse()
{
currentBackgroundIndex = (currentBackgroundIndex + 1) % 2;
trackList.GetComponent<RawImage>().texture = backgrounds[currentBackgroundIndex];
if (selectedTrackItem != null)
selectedTrackItem.GetComponentInChildren<Text>().color = Color.white;
selectedTrackItem = trackList.transform.GetChild(2).gameObject;
selectedTrackItem.GetComponentInChildren<Text>().color = Color.black;
if (selectedTrackItem == null)
return;
Artist.text = "Artist :" + selectedTrackItem.gameObject.GetComponent<TrackInfoHolder>().trackInfo.Artist.ToString();
BPM.text = "BPM :" + selectedTrackItem.gameObject.GetComponent<TrackInfoHolder>().trackInfo.BPM.ToString();
for (int i = 0; i < trackInfo.transform.childCount; i++)
Destroy(trackInfo.transform.GetChild(i).gameObject);
foreach (string trackItem in selectedTrackItem.gameObject.GetComponent<TrackInfoHolder>().trackInfo.TrackList)
{
Instantiate(trackInfoItemPrefab, trackInfo.transform).GetComponent<Text>().text = trackItem;
}
}
// Use this for initialization // Use this for initialization
void Start() void Start()
{ {
LoadTracks(); StretchTrackInfoList(GenerateTrackInfos())
.ToList()
.ForEach(x => MakeTrackObject(x));
TrackBrowse(); TrackBrowse();
} }
...@@ -78,35 +57,60 @@ public class TrackManager : MonoBehaviour { ...@@ -78,35 +57,60 @@ public class TrackManager : MonoBehaviour {
if (InputManager.Instance.IsButtonPressed) if (InputManager.Instance.IsButtonPressed)
StartTrack(); StartTrack();
} }
void LoadTracks() IEnumerable<TrackInfo> GenerateTrackInfos()
{
return new DirectoryInfo("Assets/Tracks")
.GetFiles("*.bpe", SearchOption.AllDirectories)
.Select(s => new TrackInfo(s));
}
IEnumerable<TrackInfo> StretchTrackInfoList(IEnumerable<TrackInfo> tracks)
{ {
foreach (TrackInfo track in LoadTrackInfos()) var stretched = Enumerable.Empty<TrackInfo>();
{ Enumerable.Range(0, 1 + (4 / tracks.Count()))
var trackItem = Instantiate(trackItemPrefab, trackList.transform); .ToList()
.ForEach(x => stretched.Concat(tracks));
trackItem.AddComponent<TrackInfoHolder>().trackInfo = track; return stretched;
} }
void MakeTrackObject(TrackInfo info)
{
Instantiate(trackItemPrefab, trackList.transform)
.AddComponent<TrackInfoHolder>().trackInfo = info;
} }
List<TrackInfo> LoadTrackInfos() private void TrackBrowse()
{ {
var files = new DirectoryInfo("Assets/Tracks").GetFiles("*.bpe", SearchOption.AllDirectories); trackList.GetComponent<RawImage>().texture = backgrounds[(textureID ^= 1)];
if (selected != null)
selected.GetComponentInChildren<Text>().color = Color.white;
selected = trackList.transform.GetChild(2).gameObject;
selected.GetComponentInChildren<Text>().color = Color.black;
var tracks = files.Select(s => new TrackInfo(s)).ToList(); var info = selected.GetComponent<TrackInfoHolder>().trackInfo;
while (tracks.Count() < 5)
tracks.AddRange(tracks);
return tracks; Artist.text = "Artist :" + info.Artist.ToString();
BPM.text = "BPM :" + info.BPM .ToString();
trackInfo.GetComponentsInChildren<Transform>()
.ToList()
.ForEach(x => Destroy(x));
info.TrackList
.ForEach(x => Instantiate(trackInfoItemPrefab, trackInfo.transform)
.GetComponent<Text>()
.text = x);
} }
public void StartTrack() public void StartTrack()
{ {
// TODO: disable start button if nothing selected // TODO: disable start button if nothing selected
var holder = selectedTrackItem.GetComponent<TrackInfoHolder>(); GameManager.Instance.CurrentTrack = selected.GetComponent<TrackInfoHolder>().trackInfo;
GameManager.Instance.CurrentTrack = holder.trackInfo;
Destroy(GetComponent<InputManager>()); Destroy(GetComponent<InputManager>());
Destroy(this); Destroy(this);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment