Notifications
bg
ほけ
Programmer
Tokyo, Japan
0
Likes
0
Followers
0
Connections
All
Articles0
Games0
Showcases0
Column0
Jobs0
同時衝突の問題、解決しました!

同時衝突が発生するのは仕方ないこととして、OnTriggerEnterのスクリプトではpublicの変数をセットし、
衝突される側のスクリプトのUpdateで処理することにしました。

これで、動作の重複が発生することはなくなります。

ほけ
2 months ago
Yuji YASUHARAより正しく書く方法がありますので、理解を深めたい場合は以下参考にしてください。 というのも、ふたつぶつかっている場合、OnTriggerEnterは2回呼ばれます。ので、 status = 1 と status = 2 が両方実行されるのですが、その順番については決まりがありません。 つまり status で判定している if (status == 1) else if (status == 2) のどちらが実行されるかは偶然に左右されてしまうので、何かの拍子に正しく動作しなくなるかもしれないです。 正しく解決する場合は、statusをふたつに分けて、 hit_status_bomb = 1 hit_status_core = 1 とそれぞれに設定します。判定は if (hit_status_bomb == 1) else if (hit_status_core == 1) とするのがいいですね。 OnTriggerEnterが2回呼ばれる、というところに思いを馳せると、先のプログラムの ex フラグが効かなかった理由もわかってくると思います、がんばってください!
なるほど! 確かに、どちらの判定が生きてくるかが偶然任せになっているのは気になっていました。 それだと、どちらを優先させるかをしっかり選択できますね。 大丈夫です、理解しました。 ありがとうございます!
tamtam
2 months ago
Yuji YASUHARA>↑これはOnTriggerEnterでフラグ付けして・・・ です >↑これはUpdateで判定するで良い感じですね? です >・・・にしたほうが良い感じですか? でしたね!どちらを優先するかはOnTriggerEnterでなくUpdateに書く、のがいいです
私もやっと理解。自分の書いたスクリプトだと、どっちを優先判定にするか・・・ができないので、OnTriggerEnterでフラグ付け→Updateで判定処理すればよかったと分かってスッキリしました! @ほけ さん、もしわからないことがあれば、ぜひ質問してくださいね!
Yuji YASUHARA
2 months ago
>↑これはOnTriggerEnterでフラグ付けして・・・ です >↑これはUpdateで判定するで良い感じですね? です >・・・にしたほうが良い感じですか? でしたね!どちらを優先するかはOnTriggerEnterでなくUpdateに書く、のがいいです
tamtam
2 months ago
Yuji YASUHARAより正しく書く方法がありますので、理解を深めたい場合は以下参考にしてください。 というのも、ふたつぶつかっている場合、OnTriggerEnterは2回呼ばれます。ので、 status = 1 と status = 2 が両方実行されるのですが、その順番については決まりがありません。 つまり status で判定している if (status == 1) else if (status == 2) のどちらが実行されるかは偶然に左右されてしまうので、何かの拍子に正しく動作しなくなるかもしれないです。 正しく解決する場合は、statusをふたつに分けて、 hit_status_bomb = 1 hit_status_core = 1 とそれぞれに設定します。判定は if (hit_status_bomb == 1) else if (hit_status_core == 1) とするのがいいですね。 OnTriggerEnterが2回呼ばれる、というところに思いを馳せると、先のプログラムの ex フラグが効かなかった理由もわかってくると思います、がんばってください!
hit_status_bomb = 1 hit_status_core = 1 ↑これはOnTriggerEnterでフラグ付けして・・・ if (hit_status_bomb == 1) else if (hit_status_core == 1) ↑これはUpdateで判定するで良い感じですね? あと、もし同時接触だった時に優先する方をCoreにしたい場合は・・・ if (hit_status_core == 1) else if (hit_status_bomb == 1) ・・・にしたほうが良い感じですか?
コメントありがとうございます!
衝突の件ですが、
サーベルのColliderをIsTriggerにして、サーベルのスクリプトで処理しています。

「standby.GetComponent<Standby>().ex」を排他フラグにして、条件に入ればすぐに立てるようにしているのですが……


Touchのほうは、確かに単純に取得ができるかのプログラムを改めて組んでみるべきですね。
明日にでも試してみようと思います。

tamtam
2 months ago
ほけOnTriggerEnterに処理を持って行き、else ifにしてみましたが……やはり同時検出してしまいますね。うーん
サンプル作ってみたので、ご参考までに! https://connect.unity.com/post/5b2bb8cc880c64001b7900f9
ほけ
2 months ago
OnTriggerEnterに処理を持って行き、else ifにしてみましたが……やはり同時検出してしまいますね。うーん
tamtam
2 months ago
パッと見た感じですが、OnTriggerStayに書いてある処理をOnTriggerEnterのほうで行うのはどうでしょ? あとBombBoxかCoreかを判定するif文をif並列にするのではなく、if~else ifに書き換えるのはどうでしょ? もしそれでも動かないようであれば、また教えてください。
OculusRiftのプログラムの勉強がてらにゲームを作っています。
だいぶゲームの形になってきたので晒してみます。飛んでくる爆弾をサーベルでうまいこと斬るゲームです。
http://whitecats.dip.jp/up/download/1529503995/attach/

【うまくいっていないこと】

・OculusTouchのボタンで開始したいけどうまくいってない。
  ⇒OVRInput.GetDown(OVRInput.RawButton.A)とかで取得できると思ったのですが……。類似の問題で、OculusTouchを振動させたりすることができていません。

・衝突の排他がうまくいってなくて、成功と失敗が同時に起こったりする。
  ⇒2つの衝突を同時に検出したとき、2つ目の処理を弾きたいのです。publicのフラグを使って弾こうとしているのですが、同時に衝突判定があるとどうしても二重で処理されてしまうのです……。

ゆに丸1号
2 months ago
勉強がてらのレベルが高いですね!すごい! VR開発経験皆無なのですが、衝突の方なら何か分かるかもです。 同じくスクリプトのスクショ等お待ちしてますー。
tamtam
2 months ago
すごい! もっと簡単なものを作っているのかと思いきや、ここまでできていたんですね! ビックリしました! さて、私はriftの開発経験がないので憶測でしか話せないのですが、参考までに。 ・OculusTouchのボタンで開始したい、振動もさせたい →OVRInput.GetDown(OVRInput.RawButton.A)で取得できると思います。なので、条件分岐とかの処理でこの取得処理が抜けちゃってる可能性はないでしょうか? あと取得がちゃんとできているかだけのプログラムを書いて動作するかを確認するのも良いと思います。参考までにこちらの記事を。(振動のことも書いてあります) https://framesynthesis.jp/tech/unity/touch/ ・ 衝突の排他がうまくいっていない →もし衝突判定のスクリプトを見ることができれば、何か分かるかもしれません。コメントではなく、このグループに別投稿でスクリプトのスクリーンショットなどを画像添付してもらえれば。 引き続き頑張ってください!
ほけ
2 months ago
アップローダーのパス忘れてました 「bombslash」
こんにちは。
今までずっと汎用機系システム開発者でしたが、会社をやめてVR開発の道を目指そうと思っています。
Unityを手足のように使えるようになりたいですね。よろしくお願いします。

tamtam
2 months ago
こんにちは&ようこそUnityの世界へ! xRアプリの世界では圧倒的シェア(Oculus riftだと69%、HoroLensだと91%がUnity製アプリ)になるくらい、UnityでxR開発している人は多いんですよ!
About Me
No description
See more
Skills
No skills added yet
Certifications (0)
Import
See all
ほけ's liked projects (0)
No likes yet
Following (0)
Not following anyone yet
Followers (0)
No followers
Following Companies (0)
Not following anyone yet