Страница 1 из 1

обратиться к дочернему объекту

СообщениеДобавлено: 27 авг 2019, 13:28
Hallowed
день добрый
не получается обратиться к дочернему объекту

объявление объекта (в него - префаб):
Синтаксис:
Используется csharp
public GameObject kart_grifon_1_obj;

будет помещаться в массив:
Синтаксис:
Используется csharp
public GameObject[,] user_units = new GameObject[5, 7];

создание объекта:
Синтаксис:
Используется csharp
user_units[x_pos_piece, y_pos_piece] = Instantiate(kart_grifon_1_obj, TempObject.transform.position, Quaternion.Euler(0, 0, 0));

работаю с объектами следующим образом:
Синтаксис:
Используется csharp
user_units[x, 2].GetComponent<unit_obj_script>().Health_Slider.value = units[x, 2].health;

Синтаксис:
Используется csharp
user_units[x_pos_piece, y_pos_piece].GetComponent<unit_obj_script>().Health_Slider.maxValue = 10;


все хорошо работает
добавил в этот префаб (который в переменной kart_grifon_1_obj) ещё один объект со своим скриптом
не получается обратится к этому объекту (и к скрипту соответственно)

так выдает ошибку:
Синтаксис:
Используется csharp
user_units[x, y].gameObject.transform.GetChild(0)

и так
Синтаксис:
Используется csharp
user_units[x, y].transform.GetChild(0)

так:
Синтаксис:
Используется csharp
Transform goldStar_1 = user_units[x, y].gameObject.transform.GetChild(0);
                    Transform goldStar_2 = user_units[x, y].transform.GetChild(0);

и так тоже:
Синтаксис:
Используется csharp
Transform goldStar_0 = user_units[x, y].transform.FindChild("Lamasu");


выдает свое:
NullReferenceException: Object reference not set to an instance of an object

https://prnt.sc/oy31xq

подскажите, пожалуйста - как сделать

Re: обратиться к дочернему объекту

СообщениеДобавлено: 27 авг 2019, 13:45
seaman
Для начала - понять что null. Судя по тому что я вижу user_units[x, y] - null.

Re: обратиться к дочернему объекту

СообщениеДобавлено: 27 авг 2019, 14:02
Hallowed
seaman писал(а):Для начала - понять что null. Судя по тому что я вижу user_units[x, y] - null.


у меня же написано, что прекрасно работается с user_units[x, y]
как указано работается следующим образом
Синтаксис:
Используется csharp
user_units[x, y].GetComponent<unit_obj_script>().Health_Slider.value = units[x, y].health;

Re: обратиться к дочернему объекту

СообщениеДобавлено: 27 авг 2019, 14:12
seaman
Мало ли что у Вас написано...
Тогда укажите - что у Вас null в этих строчках.