我试图在我的游戏中做一个工具栏系统,但我找不到一种方法来检测鼠标点击一个用户界面元素只或检测,如果它超过了它,常规的检测系统是不工作。我试过:
void OnMouseDown() { Debug.Log(“yay”); }
但消息不会被记录。
g2ieeal71#
可以在UI元素上使用EventSystems接口:
以您的情况为例:
public class test : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler { public void OnPointerClick(PointerEventData eventData) { Debug.Log("Click"); } public void OnPointerEnter(PointerEventData eventData) { Debug.Log("Enter"); } public void OnPointerExit(PointerEventData eventData) { Debug.Log("Exit"); } }
确保场景具有EventSystem以使其正常工作。
fzwojiic2#
IsPointOverGameObject界面可以通过上面链接中的方法来区分,可以像下面这样使用。
private void Update() { if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.IsPointerOverGameObject()) { Debug.Log("Clicked UI"); } else { Debug.Log("Clicked Not UI"); } } }
2条答案
按热度按时间g2ieeal71#
可以在UI元素上使用EventSystems接口:
以您的情况为例:
确保场景具有EventSystem以使其正常工作。
fzwojiic2#
IsPointOverGameObject
界面可以通过上面链接中的方法来区分,可以像下面这样使用。