我有一个游戏,当用户向右或向左击中自己时,会发出声音,例如oph,ouch,Oh No,等等。我希望每次都是随机声音(随机选择)。
这是我们确定声音名称的代码段。在以下片段中, hit1 是声音名称,其中之一(由Elements确定)。此代码运行良好。该代码来自“ controller.cs”
注意:在Unity内部,_Manager Prefab(_Manager/Audios Manager Script/Music Clips/Elements[Audio Clip, Sound Name, Volume]
)中有一个区域,该区域列出了此声音名称和其他任何声音名称。
else
{
if (!iFly && !iJump)
{
animationManager.animationState = animationManager.TurnRight;
AudiosManager.instance.PlayingSound("hit1");
}
}
我一直在尝试这样做,但是通过在Random()中列出其余的声音名称"hit1","hit2","hit3","hit4"
并不能正常工作,就像Random("hit1","hit2","hit3","hit4")
希望它能正常工作一样。但是,当然没有用。
好的,这是现在的代码,它不起作用。
else
{
if (!iFly && !iJump)
{
animationManager.animationState = animationManager.TurnRight;
AudiosManager.instance.PlayingSound(Random("hit1","hit2","hit3","hit4"));
}
}
为澄清起见,负责这一部分的代码实际上只是这AudiosManager.instance.PlayingSound("hit1");
。我可能是错的。
答案 0 :(得分:1)
已解决!
我不得不将public string hits;
放在public class Controller : MonoBehaviour
下。像吼叫
public class Controller : MonoBehaviour {
public string hits;
这就是现在的代码
} else {
if (!iFly && !iJump){
string[] hits = { "hit1", "hit2", "hit3", "hit4", "hit5" };
animationManager.animationState = animationManager.TurnRight;
AudiosManager.instance.PlayingSound(this.hits = hits[Mathf.FloorToInt (Random.Range(0,5))]);
}
}
因此,正如您所看到的,我添加了此string[] hits = { "hit1", "hit2", "hit3", "hit4", "hit5" };
来定义我的字符串,可以定义任意数量的字符串,并且还添加了此this.hits = hits[Mathf.FloorToInt (Random.Range(0,5))]
来每次调用随机字符串。
感谢所有在此过程中尝试帮助我的人!