对局部变量 unity c# 的空引用

Null reference on local variable unity c#

我在 start() 方法

中通过 var 参数设置的局部变量的 Null 引用有问题

这是我的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using K3DBHandler;

public class Splash : MonoBehaviour {
    private int jmlUser;
    private DataService ds = new DataService("dbK3.sqlite");

    void Start()
    {
       var user = ds.CekUser();
        Hitung(user);
        if (jmlUser == 0)
        {
            StartCoroutine(ToLogin());
        }
        else
        {
            StartCoroutine(ToHome());
        }
    }

  IEnumerator ToHome()
  {
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene("Home");
  }

    IEnumerator ToLogin()
    {
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene("Login");
    }
    private void Hitung(IEnumerable<User> UserCount)
    {
        var c = 0;
        foreach (var a in UserCount)
        {
            c++;
        }
        jmlUser = c;
    }
}

此代码在 Unity 编辑器中运行良好,但当我将其构建到 Android 时,出现如下错误:

请帮帮我

*注:我用的是Unity 2017.3.1f1

Unity 告诉您 Start 方法中的一个东西不存在。

我已经整理了你的代码,所以检测这个对象会更容易。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using K3DBHandler;

public class Splash : MonoBehaviour {
    private int jmlUser = 0;
    private DataService ds = null;

    void Start()
    {
       ds = new DataService("dbK3.sqlite");
       var user = ds.CekUser();
       Hitung(user);
       if (jmlUser == 0) StartCoroutine(ToLogin());
       else StartCoroutine(ToHome());
    }

    IEnumerator ToHome()
    {
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene("Home");
    }

    IEnumerator ToLogin()
    {
        yield return new WaitForSeconds(5);
        SceneManager.LoadScene("Login");
    }

    private void Hitung(IEnumerable<User> UserCount)
    {
        int c = 0;
        foreach (var a in UserCount) c++;
        jmlUser = c;
    }
}