[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart12 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart12 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
328: 名前は開発中のものです。 [sage] 2023/11/30(木) 10:50:42.51 ID:CMyAP9YG 質問です。2Dゲーム制作においてですが オブジェクト自体の当たり判定とは別にトリガー用の判定エリアも設けたい場合 ひとつのオブジェクトにBox Collider 2Dを2個つけるということをしている人がいます。 これはなんら普通のことでしょうか?それともあまりお勧めできることではない感じですか? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/328
331: 名前は開発中のものです。 [] 2023/11/30(木) 11:29:53.09 ID:CMyAP9YG >>329 >>328 そうなんですか、2つどころか複数つけても問題ないのですね わかりました。遠慮なくつけようと思います。 ちなみに、今、Box Collider 2Dを2個つけてみたんですが 両方ともBox Collider 2Dという名前のままなんで 区別がついてないですよね? 名前の変更もできない感じですが これ、スクリプトの方で bc = GetComponent<BoxCollider2D>();とかする場合に <BoxCollider2D>ではどう区別して指定するのですか? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/331
332: 名前は開発中のものです。 [] 2023/11/30(木) 11:39:41.86 ID:CMyAP9YG え?あれ? 自分今勘違いしているかもです。 これは、追加するBoxCollider2Dにはそれ用のオブジェクトを作って そこに貼り付けたスプライトで管理するのか? それなら確かに、BoxCollider2Dは区別しなくてもいいわけですが。。。 ひとつのオブジェクトのスプライトの中で2つのBoxCollider2Dを管理できると思ってるんですが。。。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/332
333: 名前は開発中のものです。 [] 2023/11/30(木) 11:44:29.52 ID:CMyAP9YG つまり、ひとつのオブジェクトに 当たり判定とトリガー判定のためのBoxCollider2Dが必要だと思ったら そのオブジェクトでは当たり判定のBoxCollider2Dをつけて、 もうひとつはトリガー用のBoxCollider2Dを貼り付けたオブジェクトを別につくって そのふたつのオブジェクトをいちいち合わせて考えるってことですかね? 自分のイメージだとぜんぜん違うんですが。効率悪そう。。。 普通に、ひとつのオブジェクトに2つBoxCollider2Dをくっつけて スプライトの中で、それぞれのBoxCollider2Dから反応の関数をもらえると思ってました。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/333
334: 名前は開発中のものです。 [] 2023/11/30(木) 11:53:58.64 ID:CMyAP9YG あー、ついに来たか。 親オブジェクト、子オブジェクトとか、それかー。それ使うんですね。 鬼門じゃないんですか、これは。理解できるかなー。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/334
335: 名前は開発中のものです。 [] 2023/11/30(木) 12:01:32.79 ID:CMyAP9YG ゲームオブジェクトには複数のコライダーを配置できますが、 その場合、個別にどのコライダーがヒットしたかを検出することができません しかし、解決策はあります ゲームオブジェクトの子オブジェクトを作成してそこに各コライダーをアタッチすること、 コライダーがアタッチされているゲームオブジェクトにさらに検出用のスクリプトをアタッチすることで実現することができます ↑ これですよね? コレダーに名前つけてそれぞれを区別したらいいだけだと思うんですけど Unityはそれを採用してないってことですよね http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/335
337: 名前は開発中のものです。 [] 2023/11/30(木) 12:54:18.87 ID:CMyAP9YG >>336 >Unity2022.2からCollision Layer Overrideという >オブジェクトごとに特定のレイヤーと衝突するかの設定が出来る機能が追加 うおおおおおおおおおおおおおおおお!! 自分osの問題で2021なんです、、、泣きます!!!!! http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/337
340: 名前は開発中のものです。 [] 2023/11/30(木) 13:42:59.93 ID:CMyAP9YG >>338 ありがとうございます。 複数のコライダーを順番に配列にいれといて管理するんですね? foreachで回してカウントしてトリガーを返してきたカウントからどのコライダーか判別すると。 これ、配列に入るコライダーの順番は、インスペクタの並び順ですか? つまり、例えば、一部のコライダーのインスペクタを触りたいときは c2ds[1].isTrigger = true;とかでいけますよね? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/340
341: 名前は開発中のものです。 [] 2023/11/30(木) 13:56:27.19 ID:CMyAP9YG というのも、自分の作ってるゲームでは オブジェクトのBoxCollider2DのisTriggerのon,off ちょくちょく切り替えるようにしてるんで >>338さんのを導入するとしたら 今のBoxCollider2Dを配列入れ込む話になるんで ちょっとどうなるんだろう、って。 今はBoxCollider2Dひとつだけなんで、BoxCollider2D bc;で void Start()内でbc = GetComponent<BoxCollider2D>();やってるんですよ。 それを変えるわけですよね http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/341
343: 名前は開発中のものです。 [] 2023/11/30(木) 14:34:34.68 ID:CMyAP9YG enableてオブジェクトのアクティブ、非アクティブ化にだけ使用してるみたいです。 例えば「Unity isTrigger 切り替え enable」でぐぐってみましたが enableでBoxColliderのisTriggerを切り替えてるケースが見当たらず みんな、だいたいGetComponent<Collider>().isTrigger = false;的なことやってるみたいです。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/343
344: 名前は開発中のものです。 [] 2023/11/30(木) 14:40:55.06 ID:CMyAP9YG 自分で調べた感じですがenableはGetComponent<Renderer>().enabled = false;とか見るに コンポーネントまるごとチェックをはずしたり、したい場合に使うんじゃないでしょうか BoxCollider2Dのアクティブのチェックを外したい場合とか。 自分はBoxCollider2Dの、isTriggerのチェックを外したいとかなんで enableは使わない感じじゃないでしょうか http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/344
345: 名前は開発中のものです。 [] 2023/11/30(木) 14:48:45.12 ID:CMyAP9YG あと、>>338のコードを読み解こうと頑張っているんですが ContactFilter2Dってどんなものなのか、どなたか教えて頂けないでしょうか。 なにが返ってくるのか検索してもぜんぜん解説が無いのです 利用しているコードはあるんですが、どういうものなのかの説明がされてなくて リファレンスも英語のものだけ?しか見当たらず、ちょっとなんなのかわからず 検索結果からしても、これマニアックなんですかね、使うの。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/345
350: 名前は開発中のものです。 [] 2023/11/30(木) 18:16:16.06 ID:CMyAP9YG >>349 >元々、どのコライダーが当たったのか? >が欲しかったんだよね? >なら読み解くとかいらんことしないで使えばいいんじゃね? そうです。しかし、読み解けない状態、つまりはブラックボックス状態だと うまく機能しない場合自分でどういう状況かわからないので、使わせて頂いても危険なんですよね。 例えば、現在記載してもらった>>338のコードを導入して 動いているですが、思った結果を吐いてくれてなくて、 「これは、なぜだ?」状態で悩ませています。 なるべく検索して調べているんですが、やはり解説がないので。 >>338のOnTriggerEnter2Dですが、 どのBoxCollider2Dのtriggerに触れたかわかるってことですよね? 例えば、print(_count );で毎回「1」と「2」が必ず同時にコンソールに表示されます。 でも、BoxCollider2Dの2個目のtriggerにしかチェック入れてないんですよ。 自分のイメージでは、コンソールには「2」だけが表示されなきゃならないイメージなんですが 毎回「1」と「2」が必ず同時にコンソールに表示されます。 なぜ?ってなってます。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/350
351: 名前は開発中のものです。 [] 2023/11/30(木) 18:31:12.78 ID:CMyAP9YG _countは、どのBoxCollider2Dかを教えてくれる役割ですよね? if(_bc1.IsTouching(_bc2)){ print(_count ); } print();をココだけに記述している状態。 で、地面のオブジェクトにはふたつのBoxCollider2Dのつけており 上部のBoxCollider2Dはtriggerにチェックを入れていて通り抜ける。 下部のBoxCollider2Dは当たり判定有りなので、プレイヤーは上から落ちてきたら まず上部のBoxCollider2Dを通過します。 自分のイメージでは、print();は上部のBoxCollider2Dに接触した時だけ コンソールに表示されるべきなんですが、その時の_countの値で どちらのBoxCollider2Dか判別できるんですよね? ですが、現状、地面に降り立った時には print();が2度表示されます。1、2と。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/351
357: 名前は開発中のものです。 [] 2023/11/30(木) 20:06:03.76 ID:CMyAP9YG >>352 >相手もいずトリガー状態やろ いいえ、違います。 そんな見落としは致しません。。。 >あとコライダーのoffsetトル手もあるよ Offsetから判断させるってことですね? 最悪その方法ですよね。。 >>355 >やりたいこと書いたほうがいいかもせれませんね。 やりたいこと自体は2Dアクションではよくあることで、、、 地面のオブジェクトが並んでて、プレイヤーが一部の地面の上を歩くと アイテムが下からせり出してくるって、だけです。。。 そのせり出してくるトリガーとして、地面のオブジェクトには プレイヤーとの当たり判定とは別にBoxCollider2Dで見えない判定枠を作りたいのです。 それがイズトリガーにチェックしているすり抜ける当たり判定です。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/357
360: 名前は開発中のものです。 [] 2023/11/30(木) 20:25:34.02 ID:CMyAP9YG >>358 そうです。そのスイッチとして地面の当たり判定とは別に もう一個BoxCollider2Dをつけようかと。 地面のオブジェクトにこのスイッチをつけとくのは大前提です。 >>359 >地面のオブジェクトとは別に透明な当たり判定つけて はい。当初は調べる中で、 別の透明な当たり判定を作って子オブジェクトにして くっつけるつもりでしたが >>338さんが、そんことせんでもこれでいける、と 案を出してくださったんで、>>338でいこうとしているところです。 で、詰まったと。が、自分にとってはブラックボックスなので 対処ができずにいる、と。 素直に、別オブジェクトを作ってくっつけるほうがいいのですかね。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/360
362: 名前は開発中のものです。 [] 2023/11/30(木) 20:45:29.48 ID:CMyAP9YG >>361 そうですよね。素直にそうします。 >>338さんのコード、なんか画期的っぽくて 解読したかったのですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/362
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s