В моем Unity 4.3 все работает хорошо, но после обновления до 5 У меня проблема с GetComponent. Для того, чтобы протестировать новый deprecable GetComponent я должен использовать официальный учебникОбновление GetComponent с 4 до 5 не работает
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);
}
}
И второй сценарий
using UnityEngine;
using System.Collections;
public class AnotherScript : MonoBehaviour {
public int playerScore = 9001;
}
Это только для тестирования,
я использовал тот же самый пример единства Учебное пособие https://unity3d.com/learn/tutorials/modules/beginner/scripting/getcomponent
После этого я связал два объекта в редакторе. Но отчет о запуске:
NullReferenceException: Ссылка на объект не указывает на экземпляр объекта test.Update() (на активы/test.cs: 22)
в единстве 4.3 работают хорошо.
Попробуйте добавить конструктор к классу '' AnotherScript'', как 'public AnotherScript() {playerScore = 9001;}' это также означает, что при объявлении переменной вы должны удалить часть, где ей присвоено значение –
@AlfieGoodacre. Нет. ** Никогда ** используйте конструктор в сценарии Unity, который происходит от «MonoBehavior». – Programmer
@ Программист жаль, что я не лучший с Единством, поэтому я не ответил, 'Start()' то, может быть? :) –