In Unity, ich habe einige einfachen Code, das funktioniert:Unity Toggle wirft Nullreferenceexception: Objektverweis nicht auf eine Instanz eines Objekts festgelegt
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Test : MonoBehaviour {
public Toggle GridToggle;
// Use this for initialization
void Start() {
GridToggle.isOn = true;
print (GridToggle.isOn);
}
}
Wie gesagt, das ist nur gut funktioniert, Protokollierung ‚true‘ zu die Konsole. Allerdings habe ich eine zweite Charge von Code hier, die fast genau die gleiche ist, aber aus irgendeinem bizarren Grund scheint es nicht zu funktionieren:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
public class GridManager : MonoBehaviour {
public Sprite[] gridColors = new Sprite[0];
public int defaultSprite = 0;
public Toggle GridToggle;
public SpriteRenderer spriteRenderer;
// Use this for initialization
void Start() {
//Same exact thing!
GridToggle.isOn = true;
print (GridToggle.isOn);
//Same exact thing!
spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer.sprite = gridColors [defaultSprite];
}
void Update() {
spriteRenderer = GetComponent<SpriteRenderer>();
spriteRenderer.enabled = true;
}
}
Was das bedeutet ist seltsam: Es protokolliert ‚true‘ auf die Konsole, aber zur gleichen Zeit, in der Zeile, die GridToggle.isOn = true;
sagt, es wirft: NullReferenceException: Objektverweis nicht auf eine Instanz eines Objekts festgelegt. Ich möchte, dass der zweite Code funktioniert, aber ich kann nicht herausfinden, was ich falsch mache und wie es sich vom ersten Bit unterscheidet.
Dies ist eine doppelte Frage, @Systemagical hat es richtig beantwortet. – matiaslauriti
Mögliches Duplikat von [Unity3D: NullReferenceException: Objektreferenz wurde nicht auf eine Objektinstanz festgelegt] (http://stackoverflow.com/questions/17588799/unity3d-nullreferenceexception-object-reference-not-set-to-an-instance -of-a-o) – matiaslauriti
Kommt die Protokollierung nicht nach der Zeile, in der die Ausnahme ausgelöst wird? Wie protokolliert es "wahr" und wirft die Ausnahme auf die vorherige Zeile? – cjmarsh