@Zimaell

Как использовать один метод в другом классе?

Решения данного вопроса для меня сейчас стало непонятно - так как в одном месте оно работает, а в другом нет, вот пример, сам класс

public class DataStorage : MonoBehaviour{
    public Text ScoreText;
    public static DataStorage instance;
    void Awake(){
        instance = this;
        }
....................................

вот как я применяю его в одном в классе

public class CanvasBoard : MonoBehaviour{
  private DataStorage Di;
  public static CanvasBoard instance;
  private void Awake(){
    instance = this;
    Di = DataStorage.instance;
    }
...........
  void Update(){
    Di.ScoreText.text = "" + Score;
.........

а вот я применяю его уже в другом классе но почему-то он там не работает так же

public class IAPSeller : MonoBehaviour, IStoreListener{
  private DataStorage Di;
  public static IAPSeller instance;
    private void Awake(){
        instance = this;
        Di = DataStorage.instance;
...........
    private void InitializationLot(Product p){
       Di.ScoreText.text = "11111";
.........

и вот тут уже такое не работает, хотя схема применения та же самая....
В чем может быть дело?

ошибка там где применяется примерно такая
NullReferenceException: Object reference not set to an instance of an object
IAPSeller.InitializationLot (UnityEngine.Purchasing.Product p) (at Assets/Resources/Scripts/IAPSeller.cs:632)
............................
  • Вопрос задан
  • 216 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Последовательность вызовов эвейков - дело туманное и неопределенное.
Вы даете гарантию что Awake класса DataStorage вызовется раньше чем IAPSeller?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы