所以,我希望能够编辑每个按钮上的数字,而不是代码中的数字,我该怎么做?
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;
}