类实例名称

时间:2017-08-01 09:23:11

标签: c# events unity3d

我写了一个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属性以获取已创建实例的名称?我错过了什么?

1 个答案:

答案 0 :(得分:1)

只需在脚本中的“开始”或“唤醒”中添加此语句:

A(x) y''(x)^2 + B(x) y(x) + C(x) = 0, y'(0) = a, y(0) = b