2015-06-14 4 views
-1

У меня есть (PlanetController):Единство установки GUIText другого объекта

private GameController gameController; 
... 
void OnMouseEnter() 
{ 
    gameController.setClassText("Orbital speed: " + orbitSpeed); 
} 

В сценарии GameController:

public class GameController : MonoBehaviour { 
public GUIText classText; 
void Start() { 
    this.setClassText (""); 
} 

public void setClassText(string text) { 
    classText.text = text; 
} 
} 

Но я получаю:

NullReferenceException: Object reference not set to an instance of an object 
PlanetController.OnMouseEnter() (at Assets/scripts/PlanetController.cs:29) 

Текст объекта правильно назначается в инспекторе, поэтому я теряю то, что не так.

Как это исправить?

+1

ли 'gameController' установить? –

+0

@Chris Я добавил gameController = GetComponent (); к методу начала моего PlanetController, но я все равно получаю ту же ошибку. – imperium2335

+0

Что находится на Assets/scripts/PlanetController.cs: 29? что OnMouseEnter()? и какой объект null? gameController или orbitSpeed ​​или classText? – JinJi

ответ

0

, если у вас есть

gameController = GetComponent<GameController>(); 

убедитесь, что PlanetController и GameController фактически на том же объекте игры в вашей сцене. если они не являются, вы должны будете использовать:

http://docs.unity3d.com/ScriptReference/Object.FindObjectOfType.html

+0

Хм, они действительно нет, у меня будет скрипка и посмотреть, он работает – imperium2335

+0

Спасибо человеку, я установил его: 'ничтожной Start() { \t \t gameController = FindObjectOfType (TypeOf (gameController)) в gameController; \t}' в моем PlanetController сценарии.. – imperium2335

Смежные вопросы