无法将 System.Serialized/SerializedField 用于我正在构建的 AudioManager 组件

evi*_*ock 1 unity-game-engine

使用音频管理器的基本脚本,但我收到错误,不确定发生了什么?

尝试过“使用系统;” 相反,同样的问题。

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;

}
Run Code Online (Sandbox Code Playgroud)

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

AFr*_*act 7

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

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

另外,你写得对吗?我注意到错误消息中的“SerializedField”而不是“SerializeField”,这看起来很奇怪。你应该再看一遍。

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