对局部变量 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;
}
}
我在 start()
方法
这是我的代码:
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;
}
}