public static GameObject ReadNote2(XmlNodeList list, XmlNode node) { GameObject go = null; NoteData nd = null; Debug.Log(node.OuterXml); switch (node.SelectSingleNode("m_type").InnerText) { case "SUB": case "3": go = GameObject.Instantiate(Resources.Load <GameObject> ("NoteHoldSub")); int id = int.Parse(node.SelectSingleNode("m_id").InnerText); SubsToRefer [id].Sub = go.GetComponent <NoteData> (); GameObject render = GameObject.Instantiate(Resources.Load <GameObject> ("NoteHold")); render.GetComponent <HoldScaling> ().Begin = SubsToRefer [id].transform; render.GetComponent <HoldScaling> ().End = SubsToRefer [id].Sub.transform; SubsToRefer.Remove(id); break; default: return(null); } nd = go.GetComponent <NoteData> (); nd.Position = float.Parse(node.SelectSingleNode("m_position").InnerText); nd.Width = float.Parse(node.SelectSingleNode("m_width").InnerText); nd.Time = ParamCalculator.BarToTime(float.Parse(node.SelectSingleNode("m_time").InnerText)); nd.InnerID = ++HotkeySystem.AtomicCounter; nd.NotifyWidth = true; return(go); }
void UpdateHorizons() { if (Mathf.Abs(GridDir) > 1) { foreach (var line in GridLines) { line.Time = int.MinValue; line.Transform.position = new Vector3(-100, -100, -1); } return; } double STEP = (ParamCalculator.BarToTime(1000f) - ParamCalculator.BarToTime(0f)) * BeatPerRow / 4000f; double MAXTIME = (int)((TimeControlSystem.CurrentTimeMillis + 1000) / STEP) * STEP; double MINTIME = (int)((TimeControlSystem.CurrentTimeMillis - 700) / STEP) * STEP; IEnumerator <TimeTransformPair> horis; int c = 0; for (double i = MINTIME; i < MAXTIME; i += STEP) { c++; } for (int i = GridLines.Count; i < c; i++) { Transform n = Instantiate(Resources.Load <GameObject> ("UI/GridLineHorizon"), transform).transform; GridLines.Add(new TimeTransformPair(0, n)); } horis = GridLines.GetEnumerator(); for (double i = MINTIME; i < MAXTIME; i += STEP) { if (!horis.MoveNext()) { continue; } horis.Current.Time = (int)i; horis.Current.Transform.position = new Vector3(0, ParamCalculator.TimeToPositionY((int)i), -1); horis.Current.Transform.rotation = Quaternion.Euler(0, 0, 0); horis.Current.Transform.GetComponent <LineRenderer> ().startColor = DirColors [GridDir + 1]; horis.Current.Transform.GetComponent <LineRenderer> ().endColor = DirColors [GridDir + 1]; if (GridDir != 0) { horis.Current.Transform.rotation = Quaternion.Euler(0, 0, 90); Vector3 v = horis.Current.Transform.position; Vector3 pos = horis.Current.Transform.position; pos.x = -v.y - 2f + 4.25f; pos.x *= GridDir; pos.y = 0; horis.Current.Transform.position = pos; } } while (horis.MoveNext()) { horis.Current.Time = int.MinValue; horis.Current.Transform.position = new Vector3(-100, -100, -1); } }
public static GameObject ReadNote1(XmlNodeList list, XmlNode node) { GameObject go = null; NoteData nd = null; Debug.Log(node.OuterXml); switch (node.SelectSingleNode("m_type").InnerText) { case "NORMAL": case "0": go = GameObject.Instantiate(Resources.Load <GameObject> ("NoteNormal")); break; case "CHAIN": case "1": go = GameObject.Instantiate(Resources.Load <GameObject> ("NoteChain")); break; case "HOLD": case "2": go = GameObject.Instantiate(Resources.Load <GameObject> ("NoteHoldHold")); int sub = int.Parse(node.SelectSingleNode("m_subId").InnerText); SubsToRefer.Add(sub, go.GetComponent <NoteData> ()); break; case "SUB": case "3": return(null); } nd = go.GetComponent <NoteData> (); nd.Position = float.Parse(node.SelectSingleNode("m_position").InnerText); nd.Width = float.Parse(node.SelectSingleNode("m_width").InnerText); nd.Time = ParamCalculator.BarToTime(float.Parse(node.SelectSingleNode("m_time").InnerText)); nd.InnerID = ++HotkeySystem.AtomicCounter; nd.NotifyWidth = true; return(go); }