For some reason the function of this script dies on scene change and never works again until I restart the editor and after the first scene it dies again. Can anyone see what might be going on here?
It is for a piano app as you might notice and the pattern just continues to go down the keys which I excluded most of but left enough that one should get the jist. I am not plugging any of the notes into the script manually as you can see.
using System;
using System.Collections;
using System.Collections.Generic;
using FullscreenEditor;
using Minis;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class MIDI_InputTest : MonoBehaviour
{
public Button A0Button;
public Button A1Button;
public Button A2Button;
public Button A3Button;
public Button A4Button;
public Button A5Button;
public Button A6Button;
public Button A7Button;
public Button Ab1Button;
public Button Ab2Button;
public Button Ab3Button;
public Button Ab4Button;
public Button Ab5Button;
public Button Ab6Button;
public Button Ab7Button;
public Button B0Button;
public Button B1Button;
public Button B2Button;
public Button B3Button;
public Button B4Button;
public Button B5Button;
public Button B6Button;
public Button B7Button;
public Button Bb0Button;
public Button Bb1Button;
public Button Bb2Button;
public Button Bb3Button;
public Button Bb4Button;
public Button Bb5Button;
public Button Bb6Button;
public Button Bb7Button;
public Button C1Button;
public Button C2Button;
public Button C3Button;
public Button C4Button;
public Button C5Button;
public Button C6Button;
public Button C7Button;
public Button C8Button;
public Button D1Button;
public Button D2Button;
public Button D3Button;
public Button D4Button;
public Button D5Button;
public Button D6Button;
public Button D7Button;
public Button Db1Button;
public Button Db2Button;
public Button Db3Button;
public Button Db4Button;
public Button Db5Button;
public Button Db6Button;
public Button Db7Button;
public Button E1Button;
public Button E2Button;
public Button E3Button;
public Button E4Button;
public Button E5Button;
public Button E6Button;
public Button E7Button;
public Button Eb1Button;
public Button Eb2Button;
public Button Eb3Button;
public Button Eb4Button;
public Button Eb5Button;
public Button Eb6Button;
public Button Eb7Button;
public Button F1Button;
public Button F2Button;
public Button F3Button;
public Button F4Button;
public Button F5Button;
public Button F6Button;
public Button F7Button;
public Button G1Button;
public Button G2Button;
public Button G3Button;
public Button G4Button;
public Button G5Button;
public Button G6Button;
public Button G7Button;
public Button Gb1Button;
public Button Gb2Button;
public Button Gb3Button;
public Button Gb4Button;
public Button Gb5Button;
public Button Gb6Button;
public Button Gb7Button;
void Start()
{
A1Button = GameObject.Find("A1Button").GetComponent<Button>();
A0Button = GameObject.Find("A0Button").GetComponent<Button>();
A2Button = GameObject.Find("A2Button").GetComponent<Button>();
A3Button = GameObject.Find("A3Button").GetComponent<Button>();
A4Button = GameObject.Find("A4Button").GetComponent<Button>();
A5Button = GameObject.Find("A5Button").GetComponent<Button>();
A6Button = GameObject.Find("A6Button").GetComponent<Button>();
A7Button = GameObject.Find("A7Button").GetComponent<Button>();
Ab1Button = GameObject.Find("Ab1Button").GetComponent<Button>();
Ab2Button = GameObject.Find("Ab2Button").GetComponent<Button>();
Ab3Button = GameObject.Find("Ab3Button").GetComponent<Button>();
Ab4Button = GameObject.Find("Ab4Button").GetComponent<Button>();
Ab5Button = GameObject.Find("Ab5Button").GetComponent<Button>();
Ab6Button = GameObject.Find("Ab6Button").GetComponent<Button>();
Ab7Button = GameObject.Find("Ab7Button").GetComponent<Button>();
B0Button = GameObject.Find("B0Button").GetComponent<Button>();
B1Button = GameObject.Find("B1Button").GetComponent<Button>();
B2Button = GameObject.Find("B2Button").GetComponent<Button>();
B3Button = GameObject.Find("B3Button").GetComponent<Button>();
B4Button = GameObject.Find("B4Button").GetComponent<Button>();
B5Button = GameObject.Find("B5Button").GetComponent<Button>();
B6Button = GameObject.Find("B6Button").GetComponent<Button>();
B7Button = GameObject.Find("B7Button").GetComponent<Button>();
Bb0Button = GameObject.Find("Bb0Button").GetComponent<Button>();
Bb1Button = GameObject.Find("Bb1Button").GetComponent<Button>();
Bb2Button = GameObject.Find("Bb2Button").GetComponent<Button>();
Bb3Button = GameObject.Find("Bb3Button").GetComponent<Button>();
Bb4Button = GameObject.Find("Bb4Button").GetComponent<Button>();
Bb5Button = GameObject.Find("Bb5Button").GetComponent<Button>();
Bb6Button = GameObject.Find("Bb6Button").GetComponent<Button>();
Bb7Button = GameObject.Find("Bb7Button").GetComponent<Button>();
C1Button = GameObject.Find("C1Button").GetComponent<Button>();
C2Button = GameObject.Find("C2Button").GetComponent<Button>();
C3Button = GameObject.Find("C3Button").GetComponent<Button>();
C4Button = GameObject.Find("C4Button").GetComponent<Button>();
C5Button = GameObject.Find("C5Button").GetComponent<Button>();
C6Button = GameObject.Find("C6Button").GetComponent<Button>();
C7Button = GameObject.Find("C7Button").GetComponent<Button>();
C8Button = GameObject.Find("C8Button").GetComponent<Button>();
D1Button = GameObject.Find("D1Button").GetComponent<Button>();
D2Button = GameObject.Find("D2Button").GetComponent<Button>();
D3Button = GameObject.Find("D3Button").GetComponent<Button>();
D4Button = GameObject.Find("D4Button").GetComponent<Button>();
D5Button = GameObject.Find("D5Button").GetComponent<Button>();
D6Button = GameObject.Find("D6Button").GetComponent<Button>();
D7Button = GameObject.Find("D7Button").GetComponent<Button>();
Db1Button = GameObject.Find("Db1Button").GetComponent<Button>();
Db2Button = GameObject.Find("Db2Button").GetComponent<Button>();
Db3Button = GameObject.Find("Db3Button").GetComponent<Button>();
Db4Button = GameObject.Find("Db4Button").GetComponent<Button>();
Db5Button = GameObject.Find("Db5Button").GetComponent<Button>();
Db6Button = GameObject.Find("Db6Button").GetComponent<Button>();
Db7Button = GameObject.Find("Db7Button").GetComponent<Button>();
E1Button = GameObject.Find("E1Button").GetComponent<Button>();
E2Button = GameObject.Find("E2Button").GetComponent<Button>();
E3Button = GameObject.Find("E3Button").GetComponent<Button>();
E4Button = GameObject.Find("E4Button").GetComponent<Button>();
E5Button = GameObject.Find("E5Button").GetComponent<Button>();
E6Button = GameObject.Find("E6Button").GetComponent<Button>();
E7Button = GameObject.Find("E7Button").GetComponent<Button>();
Eb1Button = GameObject.Find("Eb1Button").GetComponent<Button>();
Eb2Button = GameObject.Find("Eb2Button").GetComponent<Button>();
Eb3Button = GameObject.Find("Eb3Button").GetComponent<Button>();
Eb4Button = GameObject.Find("Eb4Button").GetComponent<Button>();
Eb5Button = GameObject.Find("Eb5Button").GetComponent<Button>();
Eb6Button = GameObject.Find("Eb6Button").GetComponent<Button>();
Eb7Button = GameObject.Find("Eb7Button").GetComponent<Button>();
F1Button = GameObject.Find("F1Button").GetComponent<Button>();
F2Button = GameObject.Find("F2Button").GetComponent<Button>();
F3Button = GameObject.Find("F3Button").GetComponent<Button>();
F4Button = GameObject.Find("F4Button").GetComponent<Button>();
F5Button = GameObject.Find("F5Button").GetComponent<Button>();
F6Button = GameObject.Find("F6Button").GetComponent<Button>();
F7Button = GameObject.Find("F7Button").GetComponent<Button>();
G1Button = GameObject.Find("G1Button").GetComponent<Button>();
G2Button = GameObject.Find("G2Button").GetComponent<Button>();
G3Button = GameObject.Find("G3Button").GetComponent<Button>();
G4Button = GameObject.Find("G4Button").GetComponent<Button>();
G5Button = GameObject.Find("G5Button").GetComponent<Button>();
G6Button = GameObject.Find("G6Button").GetComponent<Button>();
G7Button = GameObject.Find("G7Button").GetComponent<Button>();
Gb1Button = GameObject.Find("Gb1Button").GetComponent<Button>();
Gb2Button = GameObject.Find("Gb2Button").GetComponent<Button>();
Gb3Button = GameObject.Find("Gb3Button").GetComponent<Button>();
Gb4Button = GameObject.Find("Gb4Button").GetComponent<Button>();
Gb5Button = GameObject.Find("Gb5Button").GetComponent<Button>();
Gb6Button = GameObject.Find("Gb6Button").GetComponent<Button>();
Gb7Button = GameObject.Find("Gb7Button").GetComponent<Button>();
InputSystem.onDeviceChange += (device, change) =>
{
var midiDevice = device as Minis.MidiDevice;
if (midiDevice == null) return;
midiDevice.onWillNoteOn += (note, velocity) =>
{
// When middle C (MIDI #60) is pressed:
if (note.noteNumber == 21)
{
ExecuteEvents.Execute(A0Button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.submitHandler);
}
if (note.noteNumber == 22)
{
ExecuteEvents.Execute(Bb0Button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.submitHandler);
}
if (note.noteNumber == 23)
{
ExecuteEvents.Execute(B0Button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.submitHandler);
}