UnityEvent 与数组显示空引用错误

Posted

技术标签:

【中文标题】UnityEvent 与数组显示空引用错误【英文标题】:UnityEvent with array showing null reference Error 【发布时间】:2016-01-04 05:47:14 【问题描述】:

这是代码 sn-p。我做错了什么。

using UnityEngine;
using System.Collections;
using UnityEngine.Events;

public class UnityEventSystemDemo : MonoBehaviour 
    UnityEvent[] objUE;

    // Use this for initialization
    void Start () 

        objUE = new UnityEvent[2];
        objUE[0].AddListener(CustomEvent);///Null ref at this point
        objUE[1].AddListener(CustomEvent);

    

    // Update is called once per frame
    void Update () 

        if (Input.GetMouseButtonDown(0)) 
            Debug.Log("left clicked..");
            //calling Events
            objUE[0].Invoke();
            objUE[1].Invoke();
        

    

    void CustomEvent() 

        Debug.Log("customEvent..");

    

    void CustomEvent1()
    

        Debug.Log("customEvent1..");

    

NullReferenceException:对象引用未设置为 对象 UnityEventSystemDemo.Update () (在 资产/脚本/UnityEventSystemDemo.cs:23)

【问题讨论】:

该错误是哪一行代码? (这里没有行号) 我已经更新了我的代码请看 以防万一,如果您打算遍历数组以调用所有侦听器,您可以将多个侦听器添加到一个而不是数组中。 【参考方案1】:

您忘记初始化数组元素。尝试像这样更新您的 Start 方法。

objUE = new UnityEvent[2];
objUE[0] = new UnityEvent();
objUE[0].AddListener(CustomEvent);///Null ref at this point
objUE[1] = new UnityEvent();
objUE[1].AddListener(CustomEvent);

【讨论】:

非常感谢 Marius Junak!

以上是关于UnityEvent 与数组显示空引用错误的主要内容,如果未能解决你的问题,请参考以下文章

显示来自两个不同数据集的数据,其中一个数据集为空

错误 #1009:无法访问空对象引用 AS3 项目的属性或方法

(。??)ノ~java常见错误

unityevent与持续按键触发

将折线与本机地图一起使用时出现空引用错误

尝试在空对象引用上调用虚拟方法“double android.location.Location.getLatitude()”,在下面这一行中显示错误