Каждой переменной необходимо присвоить значение / инициализировать, прежде чем вы сможете его использовать.
У более старых / более близких к языкам металлов, таких как нативный C ++, такого предупреждения не будет, и, следовательно, используются любые данные случайно написано в той памяти случайно . Что никогда не было чем-то разумным. C # просто не будет компилироваться, если обнаружит такую ошибку.
Я собираюсь предположить, что AudioMixer является классом, поэтому вам нужно создать экземпляр для его использования:
public AudioMixer mixer = new AudioMixer();
Однако есть особые случаи, такие как Factory Pattern, и мне нужно посмотреть, какой подход использует AudioMixer.
Редактировать: Предполагая, что я получил правильный класс AudioMixer, он кажется одноэлементным. Но я не могу найти его фабричный метод: https://docs.unity3d.com/ScriptReference/Audio.AudioMixer.html
Edit2: я не могу найти не-Designer способ создания экземпляра AudioMixer онлайн. Поэтому я добавил тег Unity3D.
Edit3: Кредит 3Dave для этого: «AudioMixer - это класс времени разработки, связанный с окном Audio Mixer в редакторе. Его никогда нельзя создавать или динамически создавать».
Таким образом, он действительно никогда не должен создаваться ничем, кроме дизайнера. И поэтому переменная в коде не имеет большого смысла.