导航键

时间:2016-11-22 13:33:26

标签: unity3d

我正在使用Unity3d并遇到问题。我正在做的是有Canvas并且画布上下有两个按钮。我想在按钮突出显示时发出声音,我用两个按钮附加我的脚本,脚本与鼠标一起正常工作。但是我想用键盘箭头键实现这个机制,然后我使用Button Navigation System并将up按钮作为第一个选定对象放到EventSystem脚本中。现在看图像按钮高亮,键盘工作正常。但是当通过键导航到next按钮时,声音不会播放。如何解决这个问题?

enter image description here

代码:

public class HighLightSound : MonoBehaviour,IPointerEnterHandler
{

    [SerializeField]
    private AudioSource Source;


    public void OnPointerEnter(PointerEventData ped)
    {
        Source.Play();
    }


}

2 个答案:

答案 0 :(得分:1)

根据Unity Scripting API,您需要实现ISelectHandler并定义OnSelect()方法。

https://docs.unity3d.com/ScriptReference/UI.Selectable.OnSelect.html

在你的情况下会给出这个:

public class HighLightSound : MonoBehaviour,IPointerEnterHandler,  ISelectHandler
{
    [SerializeField]
    private AudioSource Source;

    public void OnPointerEnter(PointerEventData ped)
    {
        Source.Play();
    }

    public void OnSelect (BaseEventData eventData) 
    {
        Source.Play();
    }
}

希望有所帮助。

答案 1 :(得分:1)

我想你还需要实现ISelectHandler

public class HighLightSound : MonoBehaviour,IPointerEnterHandler, ISelectHandler
{

    [SerializeField]
    private AudioSource Source;


    public void OnPointerEnter(PointerEventData ped)
    {
        Source.Play();
    }

    public void OnSelect(EventSystems.BaseEventData eventData)
    {
        Source.Play();
    }
}