質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

0回答

280閲覧

物理演算を使わずに、ある特定のタグをつけた複数のオブジェクトが範囲に入った場合にそのオブジェクトを取得したい

negitam-31

総合スコア44

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2020/11/01 06:30

編集2020/11/02 09:21

前提・実現したいこと

Navmeshの迷路探索で動くAIが、平地の所々に存在するゴールのうちのどれかが、AIからの一定の範囲に入ったとき入ったオブジェクトをGameObjectとして取得したいです。

試したこと

物理演算を使ってSphereColliderに入ったGameObjectをTagで厳選して取得する方法は、AIを複数出した場合に重くなりすぎて失敗でした。
ちなみに、NevMesh自体は100体ほど動かしても問題ありませんが、物理演算を追加すると突如重くなります。
あとしっかりRigidBodyはIsKinematicをtrueにしております。

追記↓
実験の結果、OnTriggerEnterの関数が呼ばれること自体が重さの原因だという事がわかりました。

補足情報(FW/ツールのバージョンなど)

バージョンはUnity 2019.3.0a8です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2020/11/01 06:34

物理処理を全てのオブジェクトに対して行わず、Layerを使って制限する方法もあると思いますが、それは試されたのでしょうか?
negitam-31

2020/11/02 09:19

はいやってみました。OnTriggerEnterの関数自体がUpdate関数より多く呼ばれるのですが、中身を空にしても重さわ変わらないのでOnTriggerEnterを使う事自体が重くなる原因だということはわかっています。
fiveHundred

2020/11/02 09:28

すいません、言い方が悪かったですね。 今言っているのはそういう意味ではなく、Project SettingsのPhysicsのLayer Collision Matrixで不要なチェックを入れていないか、ということです。
negitam-31

2020/11/02 12:17

こちらこそすみません。レイヤーで物理判定をするオブジェクトを制限するという事ですよね。 もう一度確認して試してみましたが改善されませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問