FindGameObjectsWithTag не работает после сборки - PullRequest
0 голосов
/ 06 января 2019

Скрипт не работает в сборке - хорошо в редакторе.

Это выглядит так:

public GameObject [] fMassiv;

Это теги, которые я ищу:

f_line14 (UnityEngine.GameObject) или f_line15 (UnityEngine.GameObject) или f_line16 (UnityEngine.GameObject) и т. Д.

void OnMouseDown () 
{
    string f_string = "f_line" + searchable number + "(UnityEngine.GameObject)";

    fMassiv = GameObject.FindGameObjectsWithTag (f_string); // and here in the build everything shuts up (((
}

Постскриптум: (UnityEngine.GameObject), сделан вами сам. объекты клонируются из сборного.

Но здесь это любопытно. Если я принесу f_string на консоль, я увижу: f_line16 (UnityEngine.GameObject), а если в TextBox, то только: f_line16.

Я попытался въехать в массив и так:

fMassiv = GameObject.FindGameObjectsWithTag ("f_line" + number);

или

fMassiv = GameObject.FindGameObjectsWithTag ("f_line" + number + "(UnityEngine.GameObject)";

не работает.

Еще раз: в Unity все отлично работает.

извините за мой английский

1 Ответ

0 голосов
/ 06 января 2019

Я заметил только одну деталь:

В вашем теге-описании, например f_line14 (UnityEngine.GameObject) (скопировано сверху) между f_lineXX и (UnityEngine.GameObject) есть пробел.

Пока эта строка кода:

string f_string = "f_line" + number + "(UnityEngine.GameObject)";

не генерирует тот же формат (пробел отсутствует).

Вы вручную создаете свои теги? Или они процедурно созданы (через код)? Обычно я не могу придумать причину, по которой это будет работать в редакторе, но не в сборке.

Может помочь некоторая дополнительная информация. Пример формы: ваши игровые объекты - просто объекты сцены? Или это инстанцированные сборные дома?

...