void Start() { if (!HelperDemo.CheckSFExists()) { return; } // Default size of a Unity Plan float planSize = 10f; minZ = Plane.transform.localPosition.z - Plane.transform.localScale.z * planSize / 2f; maxZ = Plane.transform.localPosition.z + Plane.transform.localScale.z * planSize / 2f; minX = Plane.transform.localPosition.x - Plane.transform.localScale.x * planSize / 2f; maxX = Plane.transform.localPosition.x + Plane.transform.localScale.x * planSize / 2f; if (midiFilePlayer != null) { // If call is already set from the inspector there is no need to set another listeneer if (!midiFilePlayer.OnEventNotesMidi.HasEvent()) { // No listener defined, set now by script. NotesToPlay will be called for each new notes read from Midi file Debug.Log("MusicView: no OnEventNotesMidi defined, set by script"); midiFilePlayer.OnEventNotesMidi.AddListener(NotesToPlay); } } else { Debug.Log("MusicView: no MidiFilePlayer detected"); } }
void OnGUI() { int startx = 5; int starty = 120; int maxwidth = Screen.width; if (!HelperDemo.CheckSFExists()) { return; } if (midiFilePlayer != null) { GUILayout.BeginArea(new Rect(startx, starty, maxwidth, 200)); GUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Previous", ""), GUILayout.Width(150))) { Clear(); midiFilePlayer.MPTK_Previous(); } if (GUILayout.Button(new GUIContent("Next", ""), GUILayout.Width(150))) { Clear(); midiFilePlayer.MPTK_Next(); } if (GUILayout.Button(new GUIContent("Clear", ""), GUILayout.Width(150))) { Clear(); } GUILayout.EndHorizontal(); GUILayout.Label("Midi '" + midiFilePlayer.MPTK_MidiName + (midiFilePlayer.MPTK_IsPlaying ? "' is playing" : " is not playing")); GUILayout.BeginHorizontal(); GUILayout.Label("Midi Position :", GUILayout.Width(100)); double currentposition = Math.Round(midiFilePlayer.MPTK_Position / 1000d, 2); double newposition = Math.Round(GUILayout.HorizontalSlider((float)currentposition, 0f, (float)midiFilePlayer.MPTK_DurationMS / 1000f, GUILayout.Width(200)), 2); if (newposition != currentposition) { midiFilePlayer.MPTK_Position = newposition * 1000d; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Speed Music :", GUILayout.Width(100)); float speed = GUILayout.HorizontalSlider(midiFilePlayer.MPTK_Speed, 0.1f, 5f, GUILayout.Width(200)); if (speed != midiFilePlayer.MPTK_Speed) { midiFilePlayer.MPTK_Speed = speed; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Speed Note :", GUILayout.Width(100)); Speed = GUILayout.HorizontalSlider(Speed, 5f, 20f, GUILayout.Width(200)); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Camera Y:", GUILayout.Width(100)); float y = GUILayout.HorizontalSlider(Cam.transform.position.y, 50f, 150f, GUILayout.Width(200)); if (y != Cam.transform.position.y) { Cam.transform.Translate(new Vector3(0, y - Cam.transform.position.y, 0), Space.World); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Camera X:", GUILayout.Width(100)); float x = GUILayout.HorizontalSlider(Cam.transform.position.x, -50f, 50f, GUILayout.Width(200)); if (x != Cam.transform.position.x) { Cam.transform.Translate(new Vector3(x - Cam.transform.position.x, 0, 0), Space.World); } GUILayout.EndHorizontal(); GUILayout.Label("Be careful with the notes traffic jam!!!"); GUILayout.EndArea(); } }