アンドロイドとiOS向けにパズルのアプリを制作している初心者です。
(unity5.6使用)
50個のスロット(親)と50個のパズルピース(子)があり、
50個のパズルピース(子)をドラッグドロップで動かして
正解のスロット(親)を探して置くというゲーム内容です。
※50個のスロット(親)は場所固定で、
パズルピース(子)は個々のスロット上へ自由にドラッグドロップできる設定です。
パズルピースを正解のスロット上にドラッグドロップされると、
OnTriggerStay2Dで正解判定をして、正解のスロットなら
スロット(親)とパズルピース(子)の両方がDestroyされるという
動作を目指して制作しております。
問題点
実機確認したところ、下記のコードではDestroyが完全にできず、困っております。
スロット(親)のDestroyのみで、スロット(親)とパズルピース(子)の両方がDestroyされると想定しましたが、
いくつかのスロット(親)とパズルピース(子)がDestroyされずに残ってしまいます。
質問させてください。
(Mac OS上では問題なく動作しております)
//ヒエラルキー上の名前 - スロット(親)は slot_00、パズルピース(子)は pic_00 if (other.gameObject.name == "pic_00") { GameObject otherSlot = GameObject.Find ("slot_00"); //親のスロットを探す Destroy(otherSlot, 0.0f); //親のスロットをDestroy }
実機(アンドロイド/iOS端末)での動作
いくつかのパズルピース(子)がたまにDestroyされずに画面上に残ってしまいます。
(毎回ではないですが、50個のパズルピースのうち1個または2個がDestroyされずに残ってしまいます。)
※Destroyされずに残ったパズルピース(子)は親であるスロットも一緒に残っているようです。
試した事
下記のように、スロット(親)とパズルピース(子)の両方をDestroyする命令をいれると、
今度はパズルピース(子)のみが削除された空のスロット(親)が
数個残ってしまいます。(50個中、2個ほどDestroyされずに残ってしまいます。)
if (other.gameObject.name == "pic_00") { GameObject otherSlot = GameObject.Find ("slot_00"); //親のスロットを探す Destroy(otherSlot, 0.0f); //親のスロットをDestroy Destroy(other.gameObject, 0.0f); //子のパズルピースをDestroy }
下記のようにDestroyの後、nullを代入というのもしてみましたが、動作に変化はありませんでした。
Destroy(otherSlot, 0.0f); otherSlot = null;
また、親と子のDestroyの命令の順番を入れ替えてみましたが、動作に変化はありませんでした。
すいませんが、
ご教授いただけませんでしょうか?
よろしくおねがいいたします。
追記(10月4日午前)
すいません。
10月3日のタイトルに「アンドロイドでは問題なし」と記入しておりましたが、
再度別のアンドロイド端末で実機確認した所、
iOS同様に数個のスロット(親)、パズルピース(子)が残るという問題が起きました。
(全部問題なく削除される時もありますが、削除されない時もあります)
※いくつかのアンドロイド端末上、及びPC(MAC OSX)上では問題なく動作しているようです。
※アンドロイド端末の場合の方が、この問題が起きにくいようです。iOSはほぼ毎回必ず、この問題が起きます。
内容が少し変わってしまい、申し訳ありません。
ご教授よろしくおねがいいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。