Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Salty_Sugar
26 / 26 / 4
Регистрация: 02.04.2012
Сообщений: 142
1

Скрипты в Unity. Почему объекты не инициализируются?

05.09.2015, 14:31. Просмотров 228. Ответов 2
Метки нет (Все метки)

Вот, допустим, у меня есть некие gameObject1 и gameObject2.
И у них есть скрипты script1 и script2 соответственно.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Script1 : MonoBehaviour 
{
    public Script2 script2;
 
    void Start () 
    {
 
    }
 
    void Update () 
    {
    
    }
 
    void OnMouseDown()
    {
        script2.Method1();
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Script2 : MonoBehaviour 
{
    private SomeClass sClass;
 
    void Start () 
    {
        sClass = new SomeClass();
    }
 
    void Update () 
    {
        if (Input.GetKeyDown("space"))
            Method1();
        
    }
 
    void Method1()
    {
        GetComponent<SomeComponent>().someVariable = sClass.SomeMethod();
    }
}
Почему при вызове Method1() из script1 ругается, что sClass не инициализирован, но без ошибок работает при вызове из script2?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 14:31
Ответы с готовыми решениями:

Уничтожение объектов через другие объекты. Unity. C#
Я в тупике Сверху вниз из пяти точек спавна рандомно падают префабы, пусть...

Почему скрипты нельзя добавить к объектам?
Доброго времени суток. Подскажите, пожалуйста, почему скрипты нельзя добавить к...

Unity 2D - Как не двигать фон, как двигать объекты по клеткам, как изменить камеру
1. Как уменьшить эту камеру 2. Как запретить нажимать на этот фон?...

Почему Unity выдает ошибку "Keyword 'void' connot be used in this context"?
Почему Unity выдает ошибку &quot;Keyword 'void' cannot be used in this context&quot;? Я...

Удалить все объекты и создать объекты - потомки
Как сделать клоны объекта в другом объекте? Использую метод Instantiate Есть...

2
8Observer8
2269 / 1436 / 227
Регистрация: 05.10.2013
Сообщений: 4,413
Записей в блоге: 56
08.09.2015, 14:27 2
Цитата Сообщение от Salty_Sugar Посмотреть сообщение
public class Script1 : MonoBehaviour
{
* * public Script2 script2;
Цитата Сообщение от Salty_Sugar Посмотреть сообщение
Почему при вызове Method1() из script1 ругается, что sClass не инициализирован
А вы точно не забыли в инспекторе кинуть объект2 в открытое поле "public Script2 script2;"?

Цитата Сообщение от Salty_Sugar Посмотреть сообщение
void Method1()
Перед методом нужно поставить public.
0
Salty_Sugar
26 / 26 / 4
Регистрация: 02.04.2012
Сообщений: 142
08.09.2015, 16:02  [ТС] 3
Цитата Сообщение от 8Observer8 Посмотреть сообщение
А вы точно не забыли в инспекторе кинуть объект2 в открытое поле "public Script2 script2;"?
Да, я закинул объекты в нужные поля.
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Перед методом нужно поставить public.
Сам метод срабатывает, но поля класса не инициализируются.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2015, 16:02

Почему не инициализируются массивы
Здравствуйте, пытаюсь решить задачу и хочу записать для этого числа из одного...

Указатели. Почему именно так инициализируются в даном случае?
Не могу понять, почему при инициализации *p мы берем по ссылке, а при *p2...

Только начал изучать с++, подскажите, почему не Инициализируются переменные?
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru