我正在处理鼠标管理器脚本。我希望能够左键单击实例化的文本对象并让它做一件事,并在右键单击时执行其他操作。麻烦的是,您无法向事件触发器OnCLick发送参数,并且发送基本事件数据并不能为您提供单击的按钮。我不能简单地使用Update,因为我只希望他们右键单击文本对象而不是任何地方,特别是因为我想要右键单击删除对象。我看起来和看起来,人们会认为这是一个常见的问题,找到解决方案,但唉。
我已经有一个OnEnter和OnExit,它会改变文本的颜色。 有人有解决方案吗? 谢谢!
答案 0 :(得分:1)
如果有其他人在这类问题上拔头发。我终于找到了解决方案并且效果很好。所以我会分享它。
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
public class RightClick : MonoBehaviour, IPointerClickHandler
{
public UnityEvent leftClick;
public UnityEvent middleClick;
public UnityEvent rightClick;
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.button == PointerEventData.InputButton.Left)
leftClick.Invoke ();
else if (eventData.button == PointerEventData.InputButton.Middle)
middleClick.Invoke ();
else if (eventData.button == PointerEventData.InputButton.Right)
rightClick.Invoke ();
}
}