Jump to content
Unity Insider Forum

Editor -> Prefabs finden und Komponenten zerstören


Life Is Good

Recommended Posts

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 :D

 

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 :huh:

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

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 :huh:

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

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...