Life Is Good Geschrieben 19. September 2015 Melden Share Geschrieben 19. September 2015 Hey, hab da 2 komische Probleme -> 1. Ich suche mit Resources.FindObjectsOfTypeAll<GameObject>() alle Prefabs im Assets ordner und checke dann obs wirklich Prefabs sind mit PrefabUtility.GetPrefabType(gameObject) == PrefabUtility.PrefabType.Prefab komischer Weise werden erst alle prefabs gefunden wenn ich sie, nach dem ich Unity neugestartet hab, einmal angeklickt hab 2. Will ich von diesen Prefabs eine Komponente entfernen "RootPrefab" bekomme dann die Meldung "Destroying assets is not permitted to avoid data loss. If you really want to remove an asset use DestroyImmediate (theObject, true);" Ich will doch gar kein Asset löschen, bloß eine Komponente entfernen Ich hab übrigens gestern noch auf die selbe Art und Weise eine Komponente bi Prefabs zerstört, da kam die Meldung nicht. Jemand 'ne Ahnung was bei mir falsch läuft ? Edit: PC neustarten hat zumindest Problem Nr.1 gelöst, warum auch immer Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 19. September 2015 Melden Share Geschrieben 19. September 2015 2. Will ich von diesen Prefabs eine Komponente entfernen "RootPrefab" bekomme dann die Meldung "Destroying assets is not permitted to avoid data loss. If you really want to remove an asset use DestroyImmediate (theObject, true);" Ich will doch gar kein Asset löschen, bloß eine Komponente entfernen Die Fehlermeldung ist irreführend. Gemeint ist, dass alles, was nicht Teil der aktuellen Szene eines laufenden Spiels ist, nicht mit Destroy gelöscht werden kann. Destroy ist es einfach nicht erlaubt, Dinge zu löschen, die nicht sowieso beim Beenden des Spiels flöten gehen. Das darf nur DestroyImmediate, weswegen man es mit Vorsicht verwenden muss. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Life Is Good Geschrieben 19. September 2015 Autor Melden Share Geschrieben 19. September 2015 Ich nutze bereits DestroyImmediate, nur Destroy im Editor würde Destroy may not be called from edit mode! Use DestroyImmediate instead.Also think twice if you really want to destroy something in edit mode. Since this will destroy objects permanently. werfen, denke erstere Meldung bezieht sich auf den 2. optionalen parameter, damit Unity wirklich die Sicherheit hat, dass das Objekt gelöscht werden darf. Habe da aber wie gesagt so meine Gedanken, ich will ja bloß eine Komponente löschen.. Edit: Ich habs jetzt mit einer extra Komponente nochmal getestet und wenn ich true noch übergebe wird auch wirklich nur die Komponente zerstört. Schreckt aber eben ein wenig zurück die Meldung Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 21. September 2015 Melden Share Geschrieben 21. September 2015 Achso, ja... das ist nochmal eine Stufe drüber dann, und die Meldung schreckt entsprechend absichtlich ab, damit nicht irgendwer sein Projekt zerschießt und weint Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.