Задать вопрос
@DmitryLife

Как обратиться к классу из другого скрипта?

Добрый день.

У меня очень простой вопрос. Но я не могу найти на него ответ в гугле.

В Unity я создал 2 скрипта, повесил их на один объект.
В одном из скриптов я создал класс и экземпляр этого класса. Заполнил данными этот экземпляр. Теперь я хочу получить данные этого экземпляра в другом скрипте.

Во втором скрипте я обращаюсь к этому экземпляру, но пишет, что такого имени нет.

Что я не так делаю.
Часть кода:

class fightCharacter {
            public int health;

            public void Info () {
                print("Hi!");
            }
        }

void Start()
    {
        fightCharacter char11 = new fightCharacter();
        char11.health = PlayerPrefs.GetInt("char_1_health");
    }


Другой скрипт
void Start()
    {
        char11.Info();
}
  • Вопрос задан
  • 5172 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
у вас абы где создается объект char11 .

если в все в одном скрипте - то скрипт знает ссылку на этот объект и может до него достучаться.

если в другом скрипте - то вам надо как то предоставить ему информацию об этом объекте.
как предоставить - передать ссылку напрямую.
сохранить ссылку где-то в скрипте создающем объект. или еще что придумать.

просто объявив/создав внутри метода переменную/объект/класс - достучаться к нему откуда либо еще у вас не выйдет.

храните ссылку. учите основы C#, юнити тут по сути никак не участвует)
возможно вас даже сбивает с толку "два скрипта на одном объекте".
Скрипты это отдельные компоненты/классы/объекты) то что они висят на одном GameObject - НИКАК их не объединяет в один класс/объект с общими переменными и ссылками, кроме момента что GetComponent будет находить их рядом))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Не верно
fightCharacter char11 = new fightCharacter();
Верно
fightCharacter char11 = GetComponent<fightCharacter>();
Ответ написан
Ваш ответ на вопрос

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

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