我写了一个RadioButton
类,其中包含以下UnityEvent
:
[Serializable]
public class RadioEvent : UnityEvent<string> { }
[Space]
public RadioEvent OnRadioClicked = new RadioEvent();
我将脚本附加到单选按钮预制件......
在同一个脚本中,我还编写了一个属性(以找出点击了哪个预制实例)以及事件触发器:
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
if (isRadioToggle)
OnRadioClicked.Invoke(_name);
当点击一个按钮时,我想找出它是哪一个(它的名字?)所以在另一个管理单选按钮的脚本中(就像一个容器,按钮作为子项)我将点击事件处理为如下:
// Subscribe to the RadioTapHandler method.
private void Start()
{
_toggleButton.OnRadioClicked.AddListener(RadioTapHandler);
}
// Unsubscribe from the RadioTapHandler method.
private void OnDestroy()
{
_toggleButton.OnRadioClicked.RemoveListener(RadioTapHandler);
}
// What should happen when a radio toggle button is clicked?
private void RadioTapHandler(string clickedRadioButton)
{
Debug.Log("The clicked radio button is: " + clickedRadioButton);
}
第一个奇怪的是调试消息仅在我点击第一个单选按钮时打印,而不是在任何其他按钮上打印。此外,打印的调试消息实际上不包含实例名称:
The clicked radio button is: UnityEngine.Debug:Log(Object)
我做错了什么?实例化时,RadioButton
类的创建实例是否未命名?我是否以某种方式修改我的Name
属性以获取已创建实例的名称?我错过了什么?
答案 0 :(得分:1)
只需在脚本中的“开始”或“唤醒”中添加此语句:
A(x) y''(x)^2 + B(x) y(x) + C(x) = 0, y'(0) = a, y(0) = b