C# 方法'没有重载;播放';接受0个参数,更多上下文

C# 方法'没有重载;播放';接受0个参数,更多上下文,c#,unity3d,C#,Unity3d,我真的不确定出了什么问题,我对C#相当缺乏经验,我发布了这篇文章,每个人都说没有足够的上下文,所以我发布了整个脚本。虽然时间不长,但我只是需要这个帮助 using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class MusicPlayer : MonoBehaviour { public GUISkin skin; public Song[] playlist;

我真的不确定出了什么问题,我对C#相当缺乏经验,我发布了这篇文章,每个人都说没有足够的上下文,所以我发布了整个脚本。虽然时间不长,但我只是需要这个帮助

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(AudioSource))]
public class MusicPlayer : MonoBehaviour {
public GUISkin skin;

public Song[] playlist;
public AudioClip mlgSong;
public AudioSource fastSource;

int currentSongID;
bool isPlaying;

[System.NonSerialized]
public bool fastMode = false;

string currentSongCredits;

//Song credits
float timer = 0;
float slidePosition;
float slidePositionMax = 20;

void Start() {
    slidePosition = slidePositionMax;
    ShuffleSongs();
    audio.clip = playlist[0].clip;
    currentSongID = 0;
    isPlaying = audio.isPlaying;
    if (!GameSettings.music) {
        fastSource.Stop();
    }
}
void Update() {

    if ((!audio.isPlaying || GameSettings.keybinds.GetKeyDown("nextsong")) && isPlaying) {
        if (currentSongID<playlist.Length-1) {

            currentSongID++;
        } else {
            currentSongID = 0;
        }
        audio.clip = playlist[currentSongID].clip;
        slidePosition = slidePositionMax;
        Play (); //The error is here...


    }
    if ((!audio.isPlaying || GameSettings.keybinds.GetKeyDown("lastsong")) && isPlaying) {
        if (currentSongID<playlist.Length+1) {

            currentSongID++;
        } else {
            currentSongID = playlist.Length;
        }
        audio.clip = playlist[currentSongID].clip;
        slidePosition = slidePositionMax;
        Play (); //The error is also here. 

    }
    //Timer
    if (timer > 0) {
        timer -= Time.deltaTime;
    }

    if (fastMode && fastSource.volume < 1) {
        fastSource.volume = Mathf.Min(1,fastSource.volume + Time.deltaTime * 0.25f);
        audio.volume = 0.5f - fastSource.volume/2;
    }
    if (!fastMode && fastSource.volume > 0) {
        fastSource.volume = Mathf.Max(0,fastSource.volume - Time.deltaTime * 0.5f);
        audio.volume = 0.5f - fastSource.volume/2;
    }
    if (timer > 0) {
        slidePosition = Mathf.Lerp(slidePosition,0,Time.deltaTime);
    } else {
        slidePosition = Mathf.Lerp(slidePosition,slidePositionMax,Time.deltaTime);
    }

}
public void Pause() {
    Play (playlist[currentSongID].name);
}
public void Play(string credits) {
    currentSongCredits = "Now playing: " + credits;
    if (FindObjectOfType<MlgMode>() != null) {//IS MLG MODE
        audio.clip = mlgSong;
        currentSongCredits = "Now playing: xXxSW3GST3PxXx";
        FindObjectOfType<MlgMode>().StartTheShit();//Start the wubs
    }
    isPlaying = true;
    if (!audio.mute) {
        timer = 8;
    }
    audio.Play();
}


void OnGUI() {
    if (slidePosition < slidePositionMax-0.1f) {
        GUI.skin = skin;
        GUIStyle style = new GUIStyle(GUI.skin.label);
        style.fontSize = 16;
        style.alignment = TextAnchor.MiddleRight;
        Rect rect = new Rect(0,Screen.height-30+slidePosition,Screen.width,30);

        //GUIX.ShadowLabel(rect,currentSongCredits,style,1);
        GUILayout.BeginArea(rect);
        GUILayout.FlexibleSpace (); //Push down
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace(); //Push to the right
            GUILayout.Label(currentSongCredits,GUI.skin.GetStyle("SoundCredits"),GUILayout.ExpandWidth(false));
        GUILayout.EndHorizontal();
        GUILayout.EndArea();
    }
}

void ShuffleSongs() {
    //Shuffle playlist using Fisher-Yates algorithm
    for (int i = playlist.Length;i > 1;i--) {
        int j = Random.Range(0,i);
        Song tmp = playlist[j];
        playlist[j] = playlist[i - 1];
        playlist[i - 1] = tmp;
    }
}

}

[System.Serializable]
public class Song {
public string name;
public AudioClip clip;
}
使用UnityEngine;
使用系统集合;
[所需组件(类型(音频源))]
公共类音乐播放器:单一行为{
公众皮肤;
公共歌曲[]播放列表;
公共音频剪辑mlgSong;
公共音频源fastSource;
int-currentSongID;
布尔显示;
[系统非串行化]
公共bool fastMode=false;
字符串信用;
//歌曲学分
浮动计时器=0;
浮动滑动定位;
浮动滑块位置最大=20;
void Start(){
slidePosition=slidePositionMax;
ShuffleSongs();
audio.clip=播放列表[0]。clip;
currentSongID=0;
isplay=audio.isplay;
如果(!GameSettings.music){
fastSource.Stop();
}
}
无效更新(){
if((!audio.isplay | | GameSettings.keybinds.GetKeyDown(“nextsong”)&&isplay){
如果(currentSongID 0){
fastSource.volume=Mathf.Max(0,fastSource.volume-Time.deltaTime*0.5f);
audio.volume=0.5f-fastSource.volume/2;
}
如果(计时器>0){
slidePosition=Mathf.Lerp(slidePosition,0,Time.deltaTime);
}否则{
slidePosition=Mathf.Lerp(slidePosition,slidePositionMax,Time.deltaTime);
}
}
公共空间暂停(){
播放(播放列表[currentSongID].name);
}
公开无效播放(弦乐学分){
currentSongCredits=“正在播放:”+学分;
如果(FindObjectOfType()!=null){//是MLG模式
audio.clip=mlgSong;
currentSongCredits=“正在播放:xXxSW3GST3PxXx”;
FindObjectOfType().StartTheShit();//启动wubs
}
isplay=true;
如果(!audio.mute){
定时器=8;
}
音频播放();
}
void OnGUI(){
如果(滑动位置1;i--){
int j=随机范围(0,i);
歌曲tmp=播放列表[j];
playlist[j]=播放列表[i-1];
播放列表[i-1]=tmp;
}
}
}
[系统可序列化]
公开课歌曲{
公共字符串名称;
公共音频剪辑;
}

您的
Play
方法声明如下:

public void Play(string credits)
Play();
但你这样称呼它:

public void Play(string credits)
Play();
调用时需要将
字符串
作为参数

Play("White and Nerdy - Weird Al Yankovic");
您的
Play(string credits)
方法需要一个名为credits的字符串。由于您调用
Play()
时没有将字符串放在那里,因此它会给您一个错误


它所寻找的是一个重载方法,另一种没有字符串的Play()形式,当它没有发现你收到错误时。

你是从一个教程中学习的吗?最近,关于这个确切的错误消息的问题奇怪地增加了,都是关于一些不祥的Play()的method.EDIT:很明显,在过去5天里,您总共问了3次这个问题。错误消息是不言自明的!您正在尝试调用
Play
方法,没有参数,但它需要一个。重复的问题可能重复问我的
同一个用户
:)