カテゴリー
制作

コライダ有無の切り替え

前回の判定がうまくいかない原因は凡ミスだった。
other. CompareTag(“タグ名”) とするべきところでotherをつけ忘れていただけだった。

カウンターで命中のタイミングを決めるという面倒な方法でやろうとしていたが、OnTriggerStayではなくOnTriggerEnterを使う方法に変えた。Stayだと「命中は攻撃一回に付き一回のみ」という処理を実装するのがややこしくなる。多段ヒットする攻撃があってもいいかもしれないが、それは後で考える。

攻撃判定用のボックスコライダを用意しておき、ゲーム開始時にはこのインスペクター上でこのコライダのチェックボックスを外しておく。武器を振り切るタイミングでコライダを有効にし、攻撃動作を終えたら再び無効にする方法で実装。
スクリプトとコライダを持つオブジェクトがあり、OnTriggerEnterなどでコライダから呼ばれる処理がスクリプトに記述してある場合、スクリプトを無効にしてもコライダから呼ばれる処理は動くようになっているらしく、コライダを切る事で衝突判定による処理を停止できた。

ついでに、武器を振るモーションをポーズや会話で一時停止するようにした。

次回は攻撃を受けた側の処理を作る予定。