2019/7/2監督スクリプトを記述しようこのページでは、前回に引き続き、ゲームの監督スクリプトを記述していきます。監督スクリプトの主なお仕事は以下のような感じでしたね。数球の状況によって、次の番が自分かCPUかを決定する前回と前々回で、二つ目の自ターン時の処理作業までスクリプト化完了しました。今回は三つ目の、CPUターン時の処理作業をスクリプト化していきましょう!スクリプトを書こう3(CPUターンの動き)今回はUpdateメソッド中の、myturn=1、waittime=0、つまりCPUの番での処理を書いていきます。↑の変数にピンと来ない方は、制作手順2-2のページ前半で、Updateメソッドの全容を紹介していますので、まずはそちらをご確認下さい。_)mCPUの動きについて(概要)ゲームが遊べるページに白黒反転して書いてある内容を以下に引用します。そのままでは見辛い(笑)ので、ここでは黒字に戻します。今回のCPUは、次狙うべき数球に直接当てに行きます。それだけです!(笑)間にジャマな数球が入っていようが、お構いなしに狙いの球を直接狙ってきます。これだけ聞くとアホの子ですが、これ位シンプルな挙動でも結構強いので、油断せず頑張って下さい!また、直前でプレーヤーがファールした場合、ちゃんとCPUは狙いの数球の直近に手球を配置してきます。そのターンはほぼ確実に入れて来ますので、あまりファールはやらないように...。概要はこんな具合です。今回は、↑の言葉を再現出来るように、スクリプトを書いていきます。前回と前々回で、自ターンのスクリプトを書いた時と同様、とりあえずざっくりスクリプト全体を書いてみると、こんな具合でしょうか。<制作手順3参照>this.player_ball.GetComponent<player_ball>().start_shot(this.shotpower,this.shotangle);}}ちなみに、コメント行に<制作手順2-□参照>と書いてある行は、前回と前々回自ターンのスクリプト作成時に作ったメソッド・スクリプトが使い回し出来る部分になります!前回まで頑張って色々細かいスクリプトを作った甲斐がありました...(感動)。いう訳で、コメント行に【要追加】となっている行が、今回新規にスクリプト詳細を考えていく部分になります。所謂canmove=0の場合、手球はどこにでも動かせるので、CPUは狙う数球の真横に配置したいのですが、折角なので右図の黄色矢印のように、ポケットに直接落とせるような向きに配置します。右図のように狙う数球の位置によって、どのポケットに入れるかも変えていきます。その辺を考慮したスクリプトがコチラ。生成しています(所謂、単位ベクトルを生成しています)。これにより、手球は右図のように配置されるので、そのまま打てば数球がポケットに入る、という算段になっております。1]は数球の最小番号オブジェクトを指します。狙う数球オブジェクトを指していますね。方向調整については、引用文中にもあるように、目標数球の間に邪魔者があろうが関係なく、直接狙いの数球に照準を合わせます。CPUのアルゴリズムとしては、一番単純な仕組みになりますが、スクリプトに書き下すとこんな感じです。-this.relangle);Vector3.Angle(2つのベクトル)により、2つのベクトル間の角度を求められます。求められる角度は絶対値(±符号なし)で出て来ますので、反時計(+の角度)?時計(-の角度)?どちら向きの角度なのかが分かりません。よって、次の行でrelpos.yの符号(=(relpos.y)/(relpos.yの絶対値)で求めています)を角度情報に追加して、角度の向きを確定させています。最後に今回は、CPUターンの挙動について、Updateメソッド中にスクリプトを書いていきました。前回に引き続き、「ワガハイ式ビリヤード」のゲーム制作ページになります。このページでは、ゲームの監督スクリプトを記述していきます。このページでも、前回に引き続き、ゲームの監督スクリプトを記述していきます。このページでは、ゲームの手球・数球スクリプトを記述していきます。このページでは、前回に引き続き、ゲームの監督スクリプトを記述していきます。前回に引き続き、「ワガハイ式7ならべ」のゲーム制作ページになります。このページでは、組ぷよに付けるスクリプトを記述していきます。このページでは、ゲームの監督スクリプトを記述していきます。コメントをキャンセルメールアドレスが公開されることはありません。Unityゲーム制作日記.。