我正在构建的AudioManager组件无法使用System.Serializable / SerializedField

时间:2019-04-06 08:18:51

标签: unity3d

使用音频管理器的基本脚本,但出现错误,不确定发生了什么事

尝试使用系统;而是相同的问题。

using UnityEngine;
[System.Serializable]

public class Sound {
    public string name;
    public AudioClip clip;
    private AudioSource source;

    public float volume = 0.7;
    public float pitch = 1f;

    public void SetSource (AudioSource _source) {
        source = _source;
        source.clip = clip;
    }

    public void Play () {
        source.volume = volume;
        source.pitch = pitch;
        source.Play();
    }
}

public class AudioManager : MonoBehaviour
{
    [SerializedField]
    Source[] sounds;

}

我希望这会将字段添加到我正在构建的“音频管理器”中

2 个答案:

答案 0 :(得分:1)

您的错误与此有关:https://docs.unity3d.com/ScriptReference/SerializeField.html

哪个属性应该位于UnityEngine命名空间(程序集UnityEngine.CoreModule)中,并且存在于Unity的多个版本中(因此,由于版本之间的API更改,这似乎不成问题)。

还,您写得正确吗?我在错误消息中注意到“ SerializedField”而不是“ SerializeField”,这看起来很奇怪。您应该再看一遍。

您确定已为Unity安装了所有运行时,所有必需的“使用”和程序集引用以及所有工具(Visual Studio)是最新的吗?

答案 1 :(得分:0)

应该是[SerializeField],我有[Serialize d Field]。

对不起!感谢您对AFract的回复。