uGUIでSetParent(null)を使ってはいけないのでしょうか?

Unity4.6から、TransformにSetParentというメソッドができて、parent=としていた記述は、「SetParentを使うように」というwarningがでていると思います。

warningにしたがってコードを修正したのですが、parent=null; としていたのを SetParent(null)とすると、潜在的に不具合を抱えたままゲームが進行して何かのきっかけでバグるようです。自分のアプリではほぼ再現率100%でUnityエディタがクラッシュする手順があります。ただ似たようなロジックのところでは正常に動作するため、どういう要素が影響しているかまではわかりませんでした。

SetParent(null)を使用していたのは、子オブジェクトを全部削除するときで、このように書いていました。

 //SetParent(null)の書き方だとどうもマズイ模様
 while (parent.childCount > 0)
 {
      Transform child = parent.GetChild(0);
      child.SetParent(null);
      GameObject.Destroy(child.gameObject);
 }

このように変えたら直りました。

 //書き方を変更
 foreach(Transform t in this.transform)
 {
      Destroy(t.gameObject);
 }

SetParent(null)としていたのは、削除したときに、parent.childCountもちゃんとゼロになるようにしたかったからです。 GameObject.Destroyだけでは、1フレーム後じゃないと子オブジェクトが削除されないらしく、明示的にparent=nullとすることで子オブジェクトから外れるようにしていたのですが、.SetParent(null)とした場合は不正な処理になるようです。