Класс-массив задание переменных (JS)

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

Класс-массив задание переменных (JS)

Сообщение Nexonion 17 сен 2012, 20:12

Доброго времени суток. Есть вот такой кодик:
Синтаксис:
Используется javascript
@System.Serializable
class dialogManager extends System.Object {
        @HideInInspector
        var name : String = "PageDialog";
        var dialog : dialog[];
}

Этот класс определяется как массив (var dialogManager : dialogManager[];). Хотелось бы чтобы вместо Елемент 0, 1, 2 .. итд была строчка PageDialog. Но почему-то нехочет инспектор так делать. Если убрать @HideInInspector, то строка будет пустая. Если в неё что-нибудь ввести в инспекторе, то Елемент N поменяется на то что вводишь. Собственно вопрос, как сделать так чтобы стрингувую переменную не было видно, но в тоже время она меняла Елемент на своё название?
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение Левш@ 17 сен 2012, 20:24

Синтаксис:
Используется javascript
var dialogManager : dialogManager[dialog[0], dialog[1], dialog[2]];

Не ? Или я не понял... :-B
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Класс-массив задание переменных (JS)

Сообщение seaman 18 сен 2012, 08:45

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

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 18 сен 2012, 14:01

Левша, вроде не поняли )

seaman, спасибо, было познавательно, думаю так можно решить поставленный вопрос. Но я надеялся что это будет чуть чуть попроще.

Мне получается надо чтобы в классе переменной присваивалось значение, которое по не понятным мне причинам игнорируется инспектором (это конкретно только если переменные находятся в классе). Вот пример:

Синтаксис:
Используется javascript
@System.Serializable
class dialogManager extends System.Object {
        var name : String = "PageDialog";
        var dialog : dialog[];
}
var dialogManager : dialogManager[];


переменная name в инспекторе пуста! хотя я пытаюсь ей присвоить значение: "PageDialog".
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 19 сен 2012, 14:19

Никто не знает что ли? :(
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 21 сен 2012, 22:41

Не могли бы доблестные модераторы перенести эту тему в раздел Скрипты - Editor :) , а то я так понимаю ответа нет, потому что я не в тот раздел написал вопрос.

Заранее благодарю.
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение seaman 21 сен 2012, 23:02

Думаю не поэтому.
Я не спец в JS. В шарпе:
Синтаксис:
Используется csharp
using System;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
    public Test test = new Test();
}
[Serializable]
public class Test
{
    public string text = "Probe";
}

Изображение
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 22 сен 2012, 10:31

seaman, ну в шарпе вроде действительно всё норм, а вот на джаве почему-то вот так вот, как я писал. Может ли быть причиной этому то что у меня стоит 8 бета версия юнити4 ? Самое фиговое то что я теперь не могу вернуть свой проект обратно на юнити 3.5, после того как открыл его на бетке 4, бекап то забыл сделать :(

ЗЫ: Я так думаю там надо или что-то дописать перед строкой, или как-то немного по-другому создать класс.
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение seaman 22 сен 2012, 10:48

1. У меня тоже бета 8.
2. Зачем явно наследоваться от Object?
3. Явная инициализация переменных вне конструкторов/методов создает неявный статический конструктор. Может просто его явно сделать типа:
Синтаксис:
Используется javascript
@System.Serializable
class dialogManager
{
        var name : String;
        var dialog : dialog[];

        static dialogManager()
        {
             name = "PageDialog";
        }
}
var dialogManager : dialogManager[];

PS: Т.к. не пишу на JS наверняка синтаксис неверный. Нужно знать как статический конструктор на нем написать.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 22 сен 2012, 14:07

Убрал наследование.

Изображение

Ничего не поменялось. Вот как это выглядит в коде:

Синтаксис:
Используется javascript
@System.Serializable
class dialogManager {
        var name : String = "PageDialog";
        var dialog : dialog[];
}


По 3 пункту ничего не понял, типо задавать классы в друг друге?

ЗЫ: Ошибки действительно были. Поэтому я и не понял суть вашего примера. Может вы имеете ввиду статический класс?
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение Nexonion 22 сен 2012, 14:10

На класс внутри класса инспектор жалуется и пишет "BCE0089: Type 'dialogManagera' already has a definition for 'dialoga'.
"
Nexonion
UNIт
 
Сообщения: 78
Зарегистрирован: 09 авг 2012, 20:27

Re: Класс-массив задание переменных (JS)

Сообщение seaman 22 сен 2012, 17:38

Почитайте про конструкторы:
http://en.wikipedia.org/wiki/Constructo ... ramming%29
И статические конструкторы:
http://msdn.microsoft.com/ru-ru/library ... 90%29.aspx
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Editor

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

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