private void ReplaceSelectionWithTarget() { if (!_Target) { Debug.LogError("No target specified"); return; } var selection = Selection.gameObjects; foreach (var gameObject in selection) { var newPrefab = (GameObject)PrefabUtility.InstantiatePrefab(_Target); Undo.RegisterCreatedObjectUndo(newPrefab, "Replace GameObject"); newPrefab.transform.SetParent(gameObject.transform.parent); var info = new TransformInfo(gameObject.transform); info.ApplyLocal(newPrefab.transform); if (_DeleteOld) { Undo.DestroyObjectImmediate(gameObject); } } }