Unity дает мне ошибку, переменная не назначена - PullRequest
1 голос
/ 01 ноября 2019

Я сделал код, чтобы сделать слайдер громкости для своей игры, и я столкнулся с проблемой единства

Я перепробовал много кодов, но ни один не сработал, и мне нужен кто-то, чтобы объяснить мне, почему он дает мне ошибку и как могя исправляю это

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;

public class OptionsMenu : MonoBehaviour
{

    public AudioMixer mixer;

    public void SetLevel (float sliderValue)
    {
        mixer.SetFloat("volume", Mathf.Log10(sliderValue) * 20);
    }

}

это должно изменить мой мастер-микшер, как я меняю ползунок

1 Ответ

0 голосов
/ 01 ноября 2019

Каждой переменной необходимо присвоить значение / инициализировать, прежде чем вы сможете его использовать.

У более старых / более близких к языкам металлов, таких как нативный 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 в редакторе. Его никогда нельзя создавать или динамически создавать».

Таким образом, он действительно никогда не должен создаваться ничем, кроме дизайнера. И поэтому переменная в коде не имеет большого смысла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...