Массив - Форум Игроделов
Пн, 20 Май 2024, 00:46 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Массив
Массив
HeadLinerДата: Ср, 19 Ноя 2014, 21:31 | Сообщение # 1
Нет аватара
 
Сообщений: 55
Награды: 0
Репутация: 0
Статус: Offline
Доброго времени суток. Возникла проблема при использовании массива: сам скрипт просто должен менять статическую переменную у помещенных в массив объектов, но необходимые изменения происходят только у объекта, "засунутого" в массив последним, в то время как с остальными должных изменений не происходит. Как исправить данную ошибку?

Вот сам скрипт:
\
Код

var M : GameObject[];
var i =0;

function Update () {
M[i].SetActive(true);

if( Input.GetButtonDown( "Fire1" ) ){
M[i].GetComponent("Gun").fire = true;
}
  }  
 
СообщениеДоброго времени суток. Возникла проблема при использовании массива: сам скрипт просто должен менять статическую переменную у помещенных в массив объектов, но необходимые изменения происходят только у объекта, "засунутого" в массив последним, в то время как с остальными должных изменений не происходит. Как исправить данную ошибку?

Вот сам скрипт:
\
Код

var M : GameObject[];
var i =0;

function Update () {
M[i].SetActive(true);

if( Input.GetButtonDown( "Fire1" ) ){
M[i].GetComponent("Gun").fire = true;
}
  }  

Автор - HeadLiner
Дата добавления - 19 Ноя 2014 в 21:31
seamanДата: Ср, 19 Ноя 2014, 22:52 | Сообщение # 2
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Где меняется переменная i?
 
СообщениеГде меняется переменная i?

Автор - seaman
Дата добавления - 19 Ноя 2014 в 22:52
HeadLinerДата: Ср, 19 Ноя 2014, 23:02 | Сообщение # 3
Нет аватара
 
Сообщений: 55
Награды: 0
Репутация: 0
Статус: Offline
Если я вас правильно понял, то даже если самостоятельно менять значение i, результат осается неизменным.
 
СообщениеЕсли я вас правильно понял, то даже если самостоятельно менять значение i, результат осается неизменным.

Автор - HeadLiner
Дата добавления - 19 Ноя 2014 в 23:02
seamanДата: Чт, 20 Ноя 2014, 08:02 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Если я вас правильно понял, то даже если самостоятельно менять значение i, результат осается неизменным.

А вотя Вас не понял. Это Вы зачем придумали? Я Вас спросил, Вы что-то свое выдумали - хороший диалог.
 
Сообщение
Цитата
Если я вас правильно понял, то даже если самостоятельно менять значение i, результат осается неизменным.

А вотя Вас не понял. Это Вы зачем придумали? Я Вас спросил, Вы что-то свое выдумали - хороший диалог.

Автор - seaman
Дата добавления - 20 Ноя 2014 в 08:02
HeadLinerДата: Чт, 20 Ноя 2014, 09:41 | Сообщение # 5
Нет аватара
 
Сообщений: 55
Награды: 0
Репутация: 0
Статус: Offline
Вот теперь понятно)
необходимo сделать нечто подобное для изменения i
Код
for (i = 0; i < M.Length; i ++)  {

но это на C#, а как подобное создать в JavaScript ?
 
СообщениеВот теперь понятно)
необходимo сделать нечто подобное для изменения i
Код
for (i = 0; i < M.Length; i ++)  {

но это на C#, а как подобное создать в JavaScript ?

Автор - HeadLiner
Дата добавления - 20 Ноя 2014 в 09:41
NapalmRainДата: Чт, 20 Ноя 2014, 09:46 | Сообщение # 6
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата HeadLiner ()

но это на C#, а как подобное создать в JavaScript ?

Либо точно так же либо использовать один из методов прохода по всему массиву
Прочитать можно тут
 
Сообщение
Цитата HeadLiner ()

но это на C#, а как подобное создать в JavaScript ?

Либо точно так же либо использовать один из методов прохода по всему массиву
Прочитать можно тут

Автор - NapalmRain
Дата добавления - 20 Ноя 2014 в 09:46
HeadLinerДата: Чт, 20 Ноя 2014, 11:06 | Сообщение # 7
Нет аватара
 
Сообщений: 55
Награды: 0
Репутация: 0
Статус: Offline
И у меня снова проблемы с пониманием) Я пытался реализовать код приведенным вами методом, но то, что у меня получилось не работает и работать не должно, т.к. Unity не может конвертировать "GameObject' to 'int"'. Что я сделал не так?
Код

for ( var key in M) {
M[key].GetComponent("Gun").fire = true;
}


Сообщение отредактировал HeadLiner - Чт, 20 Ноя 2014, 11:11
 
СообщениеИ у меня снова проблемы с пониманием) Я пытался реализовать код приведенным вами методом, но то, что у меня получилось не работает и работать не должно, т.к. Unity не может конвертировать "GameObject' to 'int"'. Что я сделал не так?
Код

for ( var key in M) {
M[key].GetComponent("Gun").fire = true;
}

Автор - HeadLiner
Дата добавления - 20 Ноя 2014 в 11:06
NapalmRainДата: Чт, 20 Ноя 2014, 11:17 | Сообщение # 8
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата HeadLiner ()
И у меня снова проблемы с пониманием) Я пытался реализовать код приведенным вами методом, но то, что у меня получилось не работает и работать не должно, т.к. Unity не может конвертировать "GameObject' to 'int"'. Что я сделал не так?

Код
for ( var key in M) {  
M[key].GetComponent("Gun").fire = true;  
}  

Помимо выбранного вами метода в статье приводиться ещё как минимум два и плючс, можно просто использоваться стандартный For, который выглядит в копеечку точно так же как приведённый вами пример выше.
Код
for (i = 0; i < M.Length; i ++)  {
только немножко гуглим и выясняем, что в javascript'e длинна массива выясняется с помощью свойства объекта length (C маленькой буквы) и того, результат:
Код
for (var i = 0; i < M.length; i++) {
    // делаем с объектном M[i] что душе угодно
}
 
Сообщение
Цитата HeadLiner ()
И у меня снова проблемы с пониманием) Я пытался реализовать код приведенным вами методом, но то, что у меня получилось не работает и работать не должно, т.к. Unity не может конвертировать "GameObject' to 'int"'. Что я сделал не так?

Код
for ( var key in M) {  
M[key].GetComponent("Gun").fire = true;  
}  

Помимо выбранного вами метода в статье приводиться ещё как минимум два и плючс, можно просто использоваться стандартный For, который выглядит в копеечку точно так же как приведённый вами пример выше.
Код
for (i = 0; i < M.Length; i ++)  {
только немножко гуглим и выясняем, что в javascript'e длинна массива выясняется с помощью свойства объекта length (C маленькой буквы) и того, результат:
Код
for (var i = 0; i < M.length; i++) {
    // делаем с объектном M[i] что душе угодно
}

Автор - NapalmRain
Дата добавления - 20 Ноя 2014 в 11:17
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Массив
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024