Unity使ってみた

学校祭向けにミニゲームを作りました。
ゲームエンジンUnityはなかなか良い感じです。
しかし、「実行中にプレハブデータが壊れ、インスペクタが真っ白になる」バグが発生。
実行でファイルを壊すなんてどこのウィルスだよと思いつつ四苦八苦。

フォーラムを見ると「そういうバグがあって困るぜ」という報告があれど
「解決された」という報告がない。
どうやらUnity本体のバグらしいです。

原因がよく見えないのですが、コードのバグを直し以下の変更をしたら解決しました。
・他のクラスのデータにアクセスするとき、インスペクタでクラスを持つプレハブを指定していた。
・これを変更し、ソースにてGetComponentを用いクラスにアクセスした。
・解決?

変更前の悪い点を先輩が推測してくれました:
指定したプレハブから情報をgetするならともかく、setまで入ってくると大変なことになりそうです。
そもそもプレハブはゲームオブジェクトのプロトタイプなので、setで変更を加えたときにインスタンスまで変更が届く保証がありません。
さらに、私が見落としていたことですが、プレハブはHHD上にあるリソースです。
プレハブが破壊されるほどのバグということは、プレハブ操作によってHDDリソースを毎フレーム何回も書き換える事になっていたのかも・・・!
ということで、ディスク上にあるリソースはゲーム中触らないようにしましょう。
プレハブに変更を加えるのではなく、インスタンスに変更を加えるようにしたので解決したと推測。

さて、出来上がったのはこちら。

サイコロを転がして役を揃えよう。
上の動画では2が2つ隣り合ったので役となり消えています。