如何在 Unity 中编辑该"On Click()"中的 int?



所以,我希望能够编辑每个按钮上的数字,而不是代码中的数字,我该怎么做?

public void ChangeStat()
{
//assign this function to your Button
SelectablePart.IndexOfWornItem += 1;
}

(我想更改"点击"按钮上的数字1(

我认为你想要的只是让它成为

public void ChangeStat(int value)
{
SelectablePart.IndexOfWornItem += value;
}

不是通过代码引用方法,而是通过Unity中的Inspector作为静态回调,您现在可以在那里配置要传递给该方法的值。


或者,如果您的目标是能够在运行时调整传递的值,您将需要一个自定义脚本,并执行例如

[Serializable]
public class IntEvent : UnityEvent<int> { }
[RequireComponent (typeof(Button))]
public class IntButton : MonoBehaviour
{
public IntEvent onClick;
public int value;
private void Awake ()
{
GetComponent<Button>().onClick.AddListener(() => onClick.Invoke(value));
}
}

并将其附加到与CCD_ 1相同的对象。

这样你就可以在IntButton.onClick参考

  • static回调,并通过Inspector为每个回调个体传递一个int值
  • 动态回调,它将获得您在IntButton.value中为整个事件配置的值

有关更多信息,请参阅Unity手册-UnityEvent

您需要告诉按钮调用onClick中的方法。像这样:

public Button yourButton;
void Start () {
Button btn = yourButton.GetComponent<Button>();
btn.onClick.AddListener(ChangeStat);
}
void ChangeStat(){
SelectablePart.IndexOfWornItem += 1;
}

您只需在开始时引用按钮,然后使用onClick((和事件列表器来调用您指定的函数。代码-

void Start ()
{
Button button = yourButton.GetComponent<Button>();
button.onClick.AddListener(ChangeStat);
}
public void ChangeStat()
{
SelectablePart.IndexOfWornItem += 1;
}

最新更新