Unity3D UI按钮需要多次单击才能播放或暂停音频
为什么我的播放或暂停按钮需要多次单击才能播放或暂停音频?如果检测到目标,它将显示一个UI按钮,如果单击,它将播放声音,再次单击时,它将暂停,但我需要多次单击以触发代码。 有什么解决办法吗?这是我的密码Unity3D UI按钮需要多次单击才能播放或暂停音频,unity3d,vuforia,Unity3d,Vuforia,为什么我的播放或暂停按钮需要多次单击才能播放或暂停音频?如果检测到目标,它将显示一个UI按钮,如果单击,它将播放声音,再次单击时,它将暂停,但我需要多次单击以触发代码。 有什么解决办法吗?这是我的密码 void播放声音(字符串ss) { clipTarget=(音频剪辑)Resources.Load(ss); soundTarget.clip=clipTarget; soundTarget.loop=false; soundTarget.playOnAwake=false; soundTarge
void播放声音(字符串ss)
{
clipTarget=(音频剪辑)Resources.Load(ss);
soundTarget.clip=clipTarget;
soundTarget.loop=false;
soundTarget.playOnAwake=false;
soundTarget.ignoreListenerPause=true;
}
if(name==“quezon”)
{
if(Translate.GetComponent().text==“ENGLISH”)
{
叙述者.gameObject.SetActive(true);
myGirl.gameObject.SetActive(false);
myBoy.enabled=false;
ButtonAction.GetComponent您只需定义一次按钮onClick行为。如下所示:
void Awake ()
{
ButtonAction.GetComponent<Button>().onClick.AddListener (() => ToggleSound ());
}
private void ToggleSound ()
{
if (soundTarget.isPlaying)
{
soundTarget.Pause();
btn.image.overrideSprite = Play;
myBoy.enabled = false;
}
else
{
soundTarget.Play();
playSound("sounds/English");
btn.image.overrideSprite = Pause;
myBoy.enabled = true;
}
}
void Awake()
{
ButtonAction.GetComponent().onClick.AddListener(()=>ToggleSound());
}
私有无效切换声音()
{
if(soundTarget.isPlaying)
{
soundTarget.Pause();
btn.image.overrideSprite=Play;
myBoy.enabled=false;
}
其他的
{
soundTarget.Play();
播放声音(“声音/英语”);
btn.image.overrideSprite=暂停;
myBoy.enabled=true;
}
}
我认为现在正在发生的是,因为每次例程发生时都会添加侦听器,它首先触发一次,然后触发两次,然后触发三次,以此类推
这是我常用的向UI按钮添加行为的语法,很简单,你可以添加参数,看起来很干净。我推荐它
如果你没有参数,你也可以这样做,而且更容易
ButtonAction.GetComponent<Button().onClick.AddListener (ToggleSound);
ButtonAction.GetComponent