code VR

Unity×VR(181)

スポンサーリンク

//tips

//微調整

パンチモーション開始時のstate遷移とコライダーのオンオフ条件を見直した。

実行してみると、一瞬だけコライダーがオンになり、すぐにwhile (!animator.GetCurrentAnimatorStateInfo(0).IsName("Punch Attack 0") || !animator.IsInTransition(0))によってfalseにされてしまっている。

Orではなくandでwhile文を再度確認。

これでOnTriggerStay(Collider col)の場合は正常に機能するように戻った。ログを見ていくとOnTriggerStay(Collider col)とOnTriggerEnter時の違いは受け手側のother.gameObject.tagWeaponが呼ばれているかいないかの違いのように思われる。

つまり、Searchareaの接触でprivate void OnTriggerEnter(Collider other)の稼働が完了してしまい再度メソッドが実行されるタイミングがOnTriggerStayのタイミングになっているのではないかと考える。

確かにonchase = true;にできるのはOnTriggerStay(Collider col)とOnTriggerEnterが実行されたタイミングしかなく、if (playerTransform.position != null)で一度chase状態に入ったら再度trueに変えることはできなくなっている。

if (playerTransform.position != null)部分は特に外して問題なさそうなので、コメントアウトして様子を見る。

コライダーの接触はレイヤーでも制御できるのでHPscriptでプレイヤーがsearchareaを検出しないように設定していく。

searchareaに新たなレイヤーを設定。そしてdeerのコライダーに対して、editのProject SettingsからSearchレイヤーのオブジェクトを感知しないようにチェックを外す。

こうするとchaseされなくなってしまった。プレイヤー側片方のコライダーのみレイヤー判定を受け付けるということができなかった。

デバッグを差し込み再度確認していたらゴーレムのコライダーの方がうまくオンオフできていないことに気がついた。

rightfootcollider.enabled = true;

Debug.Log(animator.GetCurrentAnimatorStateInfo(0));

while (!animator.GetCurrentAnimatorStateInfo(0).IsName("Punch Attack 0") && !animator.IsInTransition(0))
{
rightfootcollider.enabled = false;

オンにした後すぐにオフになっているため反応が取れなかったよう。下記を新たに挿入し、trueにした後はパンチアクションが開始するまでコルーチンを中断させる。

yield return new WaitWhile(() => animator.GetCurrentAnimatorStateInfo(0).IsName("Punch Attack 0"));

ゴーレムの接触反応は呼ばれるが、プレイヤーのものは呼ばれない。

yield return new WaitWhile(() => animator.GetCurrentAnimatorStateInfo(0).IsName("Punch Attack 0”));がうまく機能していないのでyield return new WaitForSeconds(1.1f);の形に変更。

これでうまく判定が出るようになった。初期の時間設定のものとの違う点はstateの移行を感知するために時間を条件としたところ。前は時間でコライダーのオンオフを行なっていた。

多少はスムーズな動作と判定になった。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, VR
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.