【3Dゲームエンジン】Unity総合スレッド27at GAMEDEV【3Dゲームエンジン】Unity総合スレッド27 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト216:名前は開発中のものです。 15/10/16 06:23:56.07 433brQGT.net ぷにこん例に出してるからには長押しまで含めての話だよ 217:名前は開発中のものです。 15/10/16 06:51:45.51 tMRS5i02.net >>206 ずっとソース追ってたけど、さっぱり分からない箇所がある・・・ AStar.csの525行目のminScoreNode.DumpRecursive(); 528行目のminScoreNode.GetPath(pathList); が2つとも再帰処理やってて結局、何やってるのかブレイク張って追っても 全く理解できないんですが、これ何やってるんですか? どっちも何でこれでメソッド内の_parentNodeがnullになる動作になるのか全く理解できない・・・ 再帰処理が理解できない 218:名前は開発中のものです。 15/10/16 07:59:39.58 UWqhF7qD.net ソースを見てないので、勘で答えるが、 _parentNodeとは、1マス前の場所かな? それがnullとは、開始点のことかな? GetPathで、道順を逆にたどっているのだろう。 Start → A → B → End なら、 E → B → A → S → null 1 3 2 2 2 S 1 1 4 4 4 4 まずSの隣接マスを、キューに入れる。[3,2,1,4] すると、Sの右の1が選ばれて、キューは[3,2,4]となる 次に1の隣接マスを、キューに入れるが、 ここまでの移動コスト1を足す。 [2+1,1+1,4+1]=[3,2,5] [3,2,4,3,2,5]、次に前の方の2を取り出すなど、再帰的に繰り返す ダイクストラ・A*は、内部的には、 priority_queue(優先度キュー・順位キュー)を使っているので、 まずダイクストラから勉強すればよい 距離などのヒューリスティック(ヒント情報)を使わない、 つまり常に0にすれば、A*はダイクストラになる 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch