Скрипт. Массив. GetComponent. [Решено]
|
|
minuzz | Дата: Суббота, 05 Июля 2014, 17:53 | Сообщение # 1 |
Woute.
Сейчас нет на сайте
| Всем доброго времени суток.
Возникла проблема:
Есть скрипт - "test" В этом скрипте есть mas - массив игровых объектов (GameObject). на каждом GameObject висит скрипт "wheel_direction".
В скрипте "wheel_direction" есть int'овая переменная "wheel_dir" (равная 3), публичная.
Пытаюсь в скрипте "test", через GameComponent, у пятого объекта в mas (mas[4]), изменить значение wheel_dir, на "0". Но значение wheel_dir меняется у всех элементов массива.
Пожалуйста подскажите, где ошибка?
ps Вероятно, где-то я туплю... но уже всю голову сломал...
скрипт "test":
using UnityEngine; using System.Collections;
public class test : MonoBehaviour {
public GameObject go; public GameObject[] mas = new GameObject[10];
// Use this for initialization void Start () {
for (int i = 0; i <= 9; i++) {
mas[i] = go;
}
}
// Update is called once per frame void Update () {
if (Input.GetKeyDown (KeyCode.A)) mas [4].gameObject.GetComponent<wheel_direction> ().wheel_dir = 0;
}
void OnGUI () {
for (int i = 0; i <= 9; i++) { GUI.Label (new Rect (15 * i, 15, 45, 45), "" + mas[i].gameObject.GetComponent<wheel_direction>().get_wheel_dir()); }
}
}
скрипт "wheel_direction":
using UnityEngine; using System.Collections;
public class wheel_direction : MonoBehaviour { public int wheel_dir = 3;
public void wheel_dir_update() { this.wheel_dir++; if (wheel_dir == 4) wheel_dir = 0; }
public int get_wheel_dir() { return wheel_dir; }
}
Сообщение отредактировал minuzz - Суббота, 05 Июля 2014, 18:33 |
|
| |
lakoris | Дата: Суббота, 05 Июля 2014, 17:59 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Код mas [4].gameObject.GetComponent<wheel_direction> ().wheel_dir = 0; Я не успел внимательно прочитать, т.к. времени нет. Не знаю, но может пробел после массива mas влияет на это?Добавлено (05.07.2014, 17:59) --------------------------------------------- да и не понятно, зачем у тебя пробел Код GetComponent<wheel_direction>[b]*тут*[/b]()....
|
|
| |
Левша | Дата: Суббота, 05 Июля 2014, 18:00 | Сообщение # 3 |
почти ветеран
Сейчас нет на сайте
| Цитата lakoris ( ) может пробел после массива mas влияет на это? Нет.
X.cor.R (Prologue)
|
|
| |
minuzz | Дата: Суббота, 05 Июля 2014, 18:00 | Сообщение # 4 |
Woute.
Сейчас нет на сайте
| Цитата lakoris ( ) Я не успел внимательно прочитать, т.к. времени нет. Не знаю, но может пробел после массива mas влияет на это?
увы, но - нет... не меняет это ничего.
|
|
| |
lakoris | Дата: Суббота, 05 Июля 2014, 18:06 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| minuzz, тогда нужно дебажить. Всегда помогает Добавлено (05.07.2014, 18:03) --------------------------------------------- minuzz, Код mas [4].gameObject.GetComponent<wheel_direction> ().wheel_dir = 0; Может я сейчас ошибаюсь. Но раз у нас массив типа GameObject, то может можно так написать: Код mas [4].GetComponent<wheel_direction> ().wheel_dir = 0;
Или нет?Добавлено (05.07.2014, 18:06) ---------------------------------------------
Цитата minuzz ( ) void Start () {
for (int i = 0; i <= 9; i++) {
mas[i] = go;
}
}
А вот это за что отвечает у тебя?
|
|
| |
minuzz | Дата: Суббота, 05 Июля 2014, 18:18 | Сообщение # 6 |
Woute.
Сейчас нет на сайте
| Цитата lakoris ( ) А вот это за что отвечает у тебя?
это заполнение массива mas, объектами из публичной переменной go.
а все остальные варианты не помогают... спасибо за ответы, в любом случае!
Добавлено (05.07.2014, 18:18) --------------------------------------------- На другом форуме подсказали в чем ошибка. Я массив заполняю одним и тем же объектом... Засиделся я за кодом, похоже, раз не смог понять такую элементарную вещь.
Сообщение отредактировал minuzz - Суббота, 05 Июля 2014, 18:24 |
|
| |
lakoris | Дата: Суббота, 05 Июля 2014, 18:25 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Цитата lakoris ( ) Цитата minuzz () void Start () {
for (int i = 0; i <= 9; i++) {
mas[i] = go;
}
}
А вот это за что отвечает у тебя?
хахах)
|
|
| |
minuzz | Дата: Суббота, 05 Июля 2014, 18:32 | Сообщение # 8 |
Woute.
Сейчас нет на сайте
| lakoris, я сам уже посмеялся над собой)... бывает же такое...)
|
|
| |