String Array =(

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

String Array =(

Сообщение Jakobs 20 окт 2011, 18:30

наткнулся на проблему c Массивами =(
пишу редактор, в котором надо использовать н-ое количество окошек с формами вода текста, потом редактор будет переводить текст и ид окна в файл...
проблема заключается в невозможности создать стринговый массив
string[] text;
string[] text = new string[0-100];
попросту не хочет работать и вызывает ошибку:
ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint
и в добавок визивает
IndexOutOfRangeException: Array index is out of range.


Синтаксис:
Используется csharp
    string[] text;

void DoMyWindow(int windowID)
    {
        text[windowID] = GUILayout.TextArea(text[windowID], GUILayout.Width(200));
        GUILayout.Label("Text");
                GUI.DragWindow();
    }
 
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение burlak 20 окт 2011, 19:14

Синтаксис:
Используется csharp
string[] sa = new string[100];
 
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 19:18

Jakobs писал(а):string[] text;
string[] text = new string[0-100];


пробовал и так и так
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение burlak 20 окт 2011, 19:39

Jakobs писал(а):
Jakobs писал(а):string[] text;
string[] text = new string[0-100];


пробовал и так и так


0-100 = -100 :)

Сделай так:
Синтаксис:
Используется csharp
string[] array = new string[100];
for(int i = 0; i<array.Length; i++){
     array[i] = "";
}
 
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 20:10

0-100 = от 0 до 100, пробовал и выше 100
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение burlak 20 окт 2011, 20:35

Jakobs писал(а):0-100 = от 0 до 100, пробовал и выше 100


Что это за язык?
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 20:42

burlak писал(а):
Что это за язык?


Пишу на русском, код на с#

если не ясно почему
Jakobs писал(а):0-100 = от 0 до 100, пробовал и выше 100

то 0-100 это не математика а скорее перечень чисел, как пишут на могилках годы жизни...
пример: Василий Иванович 1967-1993
и это не как не значит что Василий Иванович -26 =)
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение gnoblin 20 окт 2011, 20:55

ошибка в другом месте,
проект-пример в студию :)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: String Array =(

Сообщение burlak 20 окт 2011, 21:12

Jakobs писал(а):
burlak писал(а):
Что это за язык?


Пишу на русском, код на с#

если не ясно почему
Jakobs писал(а):0-100 = от 0 до 100, пробовал и выше 100

то 0-100 это не математика а скорее перечень чисел, как пишут на могилках годы жизни...
пример: Василий Иванович 1967-1993
и это не как не значит что Василий Иванович -26 =)


Век живи - век учись! Не знал что такое возможно. Спасибо за науку)
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение burlak 20 окт 2011, 21:19

Странно - сделал

Синтаксис:
Используется csharp
string[] array = new string[0-100];


Юнька написала:
Assets/PrefTest.cs(7,44): error CS0248: Cannot create an array with a negative size

Как включить эту фичу?
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 21:27

burlak писал(а):Странно - сделал

Синтаксис:
Используется csharp
string[] array = new string[0-100];


Юнька написала:
Assets/PrefTest.cs(7,44): error CS0248: Cannot create an array with a negative size

Как включить эту фичу?


0-100 это образно говоря
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 21:35

Ошибку вроде нашел
Синтаксис:
Используется csharp
text[windowID] = EditorGUILayout.TextArea(text[windowID], GUILayout.Width(200));
 

я питался переназначить пустую ака не существующею стрингу

решение вижу пока что 2

1: найти возможность использования EditorGUILayout.TextArea не для замены значения, а для создания
2: назначить всех 100 переменных массива пустой стрингой, что бьет по кешу, и в программе должно быть н-ое количество переменных в массиве, так как это н-ое число назначает пользователь

пример не могу выложить, по требованиям работодателя
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

Re: String Array =(

Сообщение burlak 20 окт 2011, 21:35

Jakobs писал(а):0-100 это образно говоря


Значит все таки код на русском. )
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение burlak 20 окт 2011, 21:40

Jakobs писал(а):2: назначить всех 100 переменных массива пустой стрингой, что бьет по кешу, и в программе должно быть н-ое количество переменных в массиве, так как это н-ое число назначает пользователь.


В дотнете строки - readonly объекты. Поэтому можно без проблем инициализировать массив константой - при этом новые строки не создаются, просто элементы массива начинают указывать на константную строку.
С уважением, Дмитрий Бурлаков.
skype: dmitry.burlakov
email: _dmitry.burlakov@gmail.com
Аватара пользователя
burlak
UNITрон
 
Сообщения: 326
Зарегистрирован: 28 янв 2010, 10:21
Откуда: Санкт-Петербург

Re: String Array =(

Сообщение Jakobs 20 окт 2011, 21:45

burlak писал(а):
Jakobs писал(а):2: назначить всех 100 переменных массива пустой стрингой, что бьет по кешу, и в программе должно быть н-ое количество переменных в массиве, так как это н-ое число назначает пользователь.


В дотнете строки - readonly объекты. Поэтому можно без проблем инициализировать массив константой - при этом новые строки не создаются, просто элементы массива начинают указывать на константную строку.


интересно =)

а можно по подробней?
Аватара пользователя
Jakobs
UNIт
 
Сообщения: 103
Зарегистрирован: 08 янв 2010, 01:09
Откуда: Киев, Украина
  • Сайт
  • ICQ

След.

Вернуться в Editor

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

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