In meiner Unity 4.3 funktionieren alle gut, aber nach Upgrade auf 5 habe ich ein Problem mit GetComponent. Um zu testen, eine neue deprecable GetComponent ich die offizielle Tutorial habenGetComponent Upgrade von 4 auf 5 funktioniert nicht
using UnityEngine;
using System.Collections;
public class test : MonoBehaviour {
public GameObject otherGameObject;
private AnotherScript anotherScript;
void Awake()
{
anotherScript = GetComponent<AnotherScript>();
}
void Update()
{
Debug.Log("The player's score is " + anotherScript.playerScore);
}
}
und das zweite Skript
using UnityEngine;
using System.Collections;
public class AnotherScript : MonoBehaviour {
public int playerScore = 9001;
}
Dies ist nur für Test,
ich habe das gleiche Beispiel für die Einheit verwendet Tutorial https://unity3d.com/learn/tutorials/modules/beginner/scripting/getcomponent
Danach habe ich die beiden Objekte im Editor zugeordnet Aber der Laufbericht ist:
Nullreferenceexception: Objektverweis nicht auf eine Instanz eines Objekts test.Update() (bei Assets/Test.cs: 22)
in Einheit gut 4,3 Arbeit.
Versuchen Sie, der 'AnotherScript'-Klasse einen Konstruktor hinzuzufügen, wie' public AnotherScript() {playerScore = 9001;} 'dies bedeutet auch, dass Sie bei der Deklaration der Variablen den Wert –
@AlfieGoodacre entfernen sollten. Nein. ** Benutze niemals den Konstruktor in einem Unity-Skript, das von 'MonoBehavior' abgeleitet ist. – Programmer
@Programmer sorry Ich bin nicht der Beste mit Unity, daher habe ich nicht antworten, 'Start()' dann vielleicht? :) –