【发布时间】:2021-02-23 23:09:48
【问题描述】:
我正在 Unity 中制作游戏,并创建了一个对话框,其中包含一组动态按钮回复,这些按钮回复通过代码在按钮预制件中生成。我对按钮进行了编码以转到下一行对话,如下所示:
btn.GetComponentInChildren<Button>().onClick.AddListener((() =>
{
AnswerClicked(index);
}));
但是如果我想用鼠标右键运行AnswerClicked(index);呢?
当我有静态按钮选项时,我会添加一个名为RightButtonEvent的脚本,它会检查光标的位置以及用户是否像这样右键单击:
void Update()
{
if ((Input.GetMouseButtonDown(1))&&(isOver))
{
onRightDown.Invoke();
}
}
public void OnPointerEnter(PointerEventData eventData)
{
isOver = true;
}
public void OnPointerExit(PointerEventData eventData)
{
isOver = false;
}
}
如何在上面的动态按钮中实现这一点?
【问题讨论】: