初の質問投稿となります。よろしくお願いします。

uGUI の Textをプレハブから生成した後、 Canvas を親として設定するためにプレハブを使い

public class NumberText : MonoBehaviour
{
    public Canvas UICanvas;     //UIを表示するキャンバス
    void Awake(){
        transform.SetParent(UICanvas.transform, false);
    }
}

というように書いたのですが、下記のエラーが出てしまいます。

Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption.

プレハブを使わずに、 Canvas を直接 GameObject.Find することで正常に動作してくれたのですが、プレハブ化出来ないのがどうもモヤモヤします。

Inspector 上でプレハブやスクリプトを付け忘れていないことは確認しているのですが…。
Canvas をプレハブ化して参照するような使い方をすることが間違っているのでしょうか?

また、 Hierarchy にある CanvasはPanel や Image を子オブジェクトとして持つのですが、プレハブ化した際にこれらの子オブジェクトが Project ビューに表示されないことも気になります。

スクリーンショット