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

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

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

Сообщение kostya05 11 сен 2013, 18:21

К примеру есть такой код:

Синтаксис:
Используется csharp
public class Class1 : MonoBehaviour
{
public Mass1[] Mass1;
private int a=0;
        void StartButton ()
        {
                while(a<Mass1.Length)
                {
                        for(int b=0;b<Mass2.Length;b++)
                        {
                                for(int c=0;c<Mass3.Length;c++)
                                {
                       
                                }
                        }
                }
                a++;
                return;
        }
}
[System.Serializable]
public class Class2
{
public Mass2[] Mass2;
}
[System.Serializable]
public class Class3
{
public Mass3[] Mass3;
}


Как обратиться к, длине массива из классов Class2 и Class3?
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

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

Сообщение seaman 11 сен 2013, 18:26

Ну для начала - как создаются экземпляры классов Class2 и Class3?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение kostya05 11 сен 2013, 18:32

seaman писал(а):Ну для начала - как создаются экземпляры классов Class2 и Class3?

Синтаксис:
Используется csharp
public class Class2
{

}

public class Class3
{

}

Разве не так?
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

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

Сообщение seaman 11 сен 2013, 19:02

Учите программирование. Хотя бы в пределах - что такое класс, что такое экземпляр класса.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение porcha 11 сен 2013, 19:22

из класса наследующим моно можно брать данные или через Getcomponent у объекта к которому он прикреплен или объявив этот класс статическим.
Ну или совсем садиский - передавать из скрипта в другое место(например любой другой статичекий класс) а оттуда уже в целевой.
GameDev Проект
porcha
UNITрон
 
Сообщения: 188
Зарегистрирован: 28 мар 2013, 19:47

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

Сообщение seaman 11 сен 2013, 19:42

Все, конечно можно. Только вот Вы porcha ответьте на вопрос - каким образом вообще класс Class2 получит управление? Он не статический, его нельзя набросить на объект, т.к. он не от MonoBehaviour унаследован. Есть только одна возможность - создать его экземпляр в другом классе, который таки унаследован от MonoBehaviour или статический и оттуда вызвать нужную функцию. Возникает резонный вопрос - где и как он создается, как и откуда вызывается нужная функция? Может он создается в самом Class1 : MonoBehaviour ? Тогда ничего искать вообще не надо. Проще при создании передать ссылку на себя и все.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение kostya05 11 сен 2013, 20:18

Посмотрел на свой код, подумал как я это представляю должно работать и в голову пришло решение, все работает теперь.

Синтаксис:
Используется csharp
public class Class1 : MonoBehaviour
{
public Mass1[] Mass1;
private int a=0;
         void StartButton ()
         {
                 while(a<Mass1.Length)
                 {
                         for(int b=0;b<Mass1[a].Mass2.Length;b++)
                         {
                                 for(int c=0;c<Mass1[a].Mass2[b].Mass3.Length;c++)
                                 {
                         
                                 }
                         }
                 }
                 a++;
                 return;
         }
}
[System.Serializable]
public class Class2
{
public Mass2[] Mass2;
}
[System.Serializable]
public class Class3
{
public Mass3[] Mass3;
}
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

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

Сообщение porcha 11 сен 2013, 22:11

seaman писал(а):Все, конечно можно. Только вот Вы porcha ответьте на вопрос - каким образом вообще класс Class2 получит управление? Он не статический, его нельзя набросить на объект, т.к. он не от MonoBehaviour унаследован. Есть только одна возможность - создать его экземпляр в другом классе, который таки унаследован от MonoBehaviour или статический и оттуда вызвать нужную функцию. Возникает резонный вопрос - где и как он создается, как и откуда вызывается нужная функция? Может он создается в самом Class1 : MonoBehaviour ? Тогда ничего искать вообще не надо. Проще при создании передать ссылку на себя и все.

какой класс2? что за статические данные, я вообще не имел ввиду приведенный автором пример кода, так как я понятия не имею где такую связку можно использовать.
Я ответил на этот вопрос: Как запростить длину массива из другого класса? какие классы, что за экземпляры...
GameDev Проект
porcha
UNITрон
 
Сообщения: 188
Зарегистрирован: 28 мар 2013, 19:47

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

Сообщение seaman 11 сен 2013, 22:29

А теперь перечитайте первый пост, а не только заголовок темы. Ну можете еще перечитать и последний пост топикастера - его решение. И где там Getcomponent? Не всегда он нужен. Достаточно часто можно просто обратиться напрямую, коль уж есть ссылка на класс. И код, приведенный автором в первом посту как бы на это и намекает.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение porcha 11 сен 2013, 22:48

я так понял что Mass1 это или класс или структура которая содержит:
Синтаксис:
Используется csharp
public class Mass1 {
 public Mass2[] Mass2;
}

public class Mass2 {
 public Mass3[] Mass3;
}

public class Mass3 {
 
}
GameDev Проект
porcha
UNITрон
 
Сообщения: 188
Зарегистрирован: 28 мар 2013, 19:47

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

Сообщение seaman 11 сен 2013, 22:56

И что Вы сейчас написали? К чему эта перепечатка из поста топикастера?
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение porcha 11 сен 2013, 23:08

seaman писал(а):И что Вы сейчас написали? К чему эта перепечатка из поста топикастера?

ну просто я вспомнил ту фигню про экземпляры и классы, статические данные.., и вроде как автор вообще не обращается к классам 1 и 2.
Тогда к чему был тот пост, большой, который должен был чтото мне объяснить.
GameDev Проект
porcha
UNITрон
 
Сообщения: 188
Зарегистрирован: 28 мар 2013, 19:47

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

Сообщение seaman 11 сен 2013, 23:16

Ну если Вы сами не видите - помогу. Вопрос топикастера был такой:
Как обратиться к, длине массива из классов Class2 и Class3?

А теперь еще раз перечитайте тот мой длинный пост и ответьте на вопрос, который я Вам там задал -
каким образом вообще класс Class2 получит управление?

А вообще - можете прочитать и ответ, который там Вам я сам и дал:
Может он создается в самом Class1 : MonoBehaviour ? Тогда ничего искать вообще не надо.

Ну вот как я и предполагал - ничего искать и не надо, никаких GetComponent брать и не надо.
И в следующий раз, пожалуйста - читайте топик не по диагонали, а внимательно.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

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

Сообщение porcha 11 сен 2013, 23:23

что за карусели? зачем обращаться к классу 2 если автор вообще его не использует в результате.
Зачем этот вопрос был адресован мне?
Перепечатка была к тому, что тот большой пост содержал решение такое же как и мое про статический класс.
В итоге автор вообще обощелся своеобразным примером и можно те два класса вообще стереть что из первого поста что и последнего - они смысла вообще ни какого не несут, а только запутывают.
GameDev Проект
porcha
UNITрон
 
Сообщения: 188
Зарегистрирован: 28 мар 2013, 19:47

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

Сообщение seaman 11 сен 2013, 23:28

Вы утомили. Читайте все внимательнее.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20