Массив
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