@FishSti4k
Новичок в unity, более менее умею делать 3d модели

Как можно перенести данные из одного скрипта в другой?

В чем проблема. У меня есть два скрипта. Один с данными о монетах Coins, другой Player. В скрипте Coins есть переменная coinsAmount. Мне нужно каким то чудом перенести эту переменную с этим значением в скрипт Player.
  • Вопрос задан
  • 727 просмотров
Решения вопроса 2
vabka
@vabka Куратор тега C#
Токсичный шарпист
Перенести саму переменную ты можешь только ctrl+X -> ctrl+V. А вот так можно передать данные, которые хранятся в ней:

Вариант раз: обратиться напрямую к данным о монетах через поле/свойство экземпляра класса.
Примерно так:
public class Player {
  public Coins coins; // Как-то нужно присвоить ему значение, иначе будет NRE
  public void SomeMethod() {
    var total = coins.coinsAmount; // Вот мы и обратились
  }
}

Вариант два: передать значение как параметр метода, где эти данные нужны.
Выбор зависит от того, в какой момент эти данные нужны. Конкретнее сказать нельзя, ибо не достаточно информации в твоём вопросе

И раз уж задаёшь в теге "C#" вопрос, то используй нормальную терминологию:
Не скрипты, а классы.
Не переменная, а поле.
Ответ написан
Комментировать
@mordamax1
В скрипте Coins переменную coinsAmount нужно сделать публичной, если она таковой не является.
В скрипте Player нужно создать переменную которая будет содержать данные coinsAmount (предположим что переменная называется coinsAmountPlayer) и в апдейте написать:
coinsAmountPlayer = GameObject.Find("SomeObject").GetComponent().coinsAmount; //Вместо SomeObject, нужно прописать название объекта, к которому будет привязан скрипт.

Возможно это фиговый способ в плане оптимизации, но результат должен быть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы