Я не знаю, чего вы пытаетесь достичь, но прежде всего попробуйте установить флажок Generate Colliders
в импорте модели (https://docs.unity3d.com/Manual/FBXImporter-Model.html), возможно, это решит все ваши проблемы.
Изображение
Второе предложение - обновить единство (нет, ваш сценарий не будет работать, но всегда лучше иметь новую версию)
И в соответствии с вашим первоначальным запросом.Все, что я могу предложить, это (код для единицы 2018.3):
var go = GameObject.Instantiate(modelAsset);
GameObjectUtility.SetStaticEditorFlags(modelAsset, (StaticEditorFlags)(-1));
foreach (Transform child in go.transform)
{
if (child.name.Contains("UCX_"))
{
Renderer rend;
rend = child.GetComponent<Renderer>();
rend.enabled = !rend.enabled;
child.gameObject.AddComponent<MeshCollider>();
}
}
PrefabUtility.SaveAsPrefabAsset(go, destinationPath);
GameObject.DestroyImmediate(go);
Я немного изменил ваш скрипт. Теперь сначала будет создан экземпляр сетки, и будет создан префаб из объекта, а не из ресурса.
Причина появления ошибки заключается в следующем: вы пытаетесь изменить файл fbx
, как будто это объект сцены. Сначала вы должны создать его экземпляр, затем сделать все, что захотите, и после этого сохранить его как префаб.