>>55
var clone = Instantiate(rockPrefab);
Rock rockScript = (Rock)((GameObject)clone).GetComponent(typeof(Rock));
rockScript.rockPrefab = this.rockPrefab;
おっしゃる通り上のコードで参照を戻すことで上手くいきました
inspectorでapplyを押すと勝手にアタッチされたプレハブが置き換わるのもおそらくは参照関係を保つ為あえて行われているということですね
全てに納得がいきスッキリしました
最後までおつき合い頂き本当にありがとうございました