C# 方法'没有重载;播放';接受0个参数,更多上下文
我真的不确定出了什么问题,我对C#相当缺乏经验,我发布了这篇文章,每个人都说没有足够的上下文,所以我发布了整个脚本。虽然时间不长,但我只是需要这个帮助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;
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
方法,没有参数,但它需要一个。重复的问题可能重复问我的同一个用户
:)