【3Dゲームエンジン】Unity質問スレッド21at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド21 - 暇つぶし2ch393:名前は開発中のものです。
15/12/04 18:55:00.77 LhrOBBwU.net
>>380
unityっていうよりアルゴリズムの話の気はするがな。
壁にぶつかったもの、じゃなくて壁にぶつからなかったもの、だろう。
命令的に使うべきものはRandom.Range(a,b)くらいだ。
例えばだが
前後左右に壁判定をして結果がbool[4] detectとかに格納されている。壁があればtrue
float[4] weightにそれぞれ前・右・左・後の順で重み付けが格納されている
として
float total=0f;
for(int i=0;i<4;i++){
if(detect[i]==false)total+=weight[i];
}
float probability = Random.Range(0,total);
int direct;
for(direct=0;direct<3;direct++){
if(detect[direct]==false)total-=weight[direct];
if(total<0)break;
}
とかやればdirectが0なら前、1なら右~という結果が残る。
探索距離にもよるが全方面がふさがっていた場合どうすんのかとかそういう問題はあって
ゲームの内容によってはこのままではバグ化することは考えられるが。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch