2016-12-22 1 views
0

не имеют представления о том, что происходит не так. Существует проблема, заключающая аутсорсинг некоторого кода в другом классе. Если следующий код находится в одном классе, он работает нормально.Unity3D C# - NullReferenceException, хотя текст прилагается и методы работают

SearchClient.cs

void callExposeAPi (string id) 
{ 
    ExposeClient exposeClient = (new GameObject("ExposeClient")).AddComponent<ExposeClient>(); 
    exposeClient.loadExpose(id); 
} 

ExposeClient.cs

public Text _baserentText; // is attached to Text in Unity 

public void loadExpose(string id) 
{ 
    [some API stuff...] 
    Debug.Log(result.exposeexpose.realEstate.baseRent); // 480 
    makeUseOfExposeUI(result.exposeexpose.realEstate); 
} 

void makeUseOfExposeUI (Realestate realestate) 
{ 
    Debug.Log(realestate.baseRent); // 480 
    _baserentText.text = realestate.baseRent.ToString(); 
} 

ответ

1

Я вижу, что происходит, в методе callExposeAPi вы создаете новый экземпляр ExposeClient, а затем, глядя на ваши комментарии в ExposeClient.cs, который вы упомянули, «прикреплен к тексту в Unity», когда вы назначили переменные через редактор, ассоциация _baserentText возникает с объектом, который вы вручную связали с помощью редактора, если вы динамически создаете экземпляр, эта ассоциация h пр быть сделано по-другому, или вы могли бы сделать что-то вроде этого:

void callExposeAPi (string id) 
{ 
    ExposeClient exposeClient = GameObject.Find("ExposeClient").GetComponent<ExposeClient>(); 
    exposeClient.loadExpose(id); 
} 

Разница здесь в том, что вы используете объект игры, который уже содержит ExposeClient сценарий прилагается и его сериализованная поле «_baserentText» уже , который не будет генерировать нулевое исключение.

+0

Ошибка все тот же. И еще нет ExposeClient как «GameObject» в иерархии Unity. – fmielke

+0

ExposeClient.cs был прикреплен к 'EventSystem'. Я использовал 'ExposeClient exposeClient = GameObject.Find (« EventSystem »). GetComponent ();' и он работает :) – fmielke

+0

@fmielke cool :) – Dilmer

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

  • Нет связанных вопросов^_^