質問: ### 前提・実現したいこと VRソーシャルサービスの「Vrchat」でタワーディフェンスゲームを実現しようとしております。 対象に向かって移動するモンスターをスポーンするオブジェクトを作りたいです。 ### 発生している問題・エラーメッセージ モンスター(AIThirdPersonController)はScene内の宝箱にIntaractすると、ProjectのPrefabからScene内にスポーンします。 モンスターはProject内のPlayer_crystal2に対して移動するようにAI Character Control(Script)のTargetに設定しています。 しかしモンスターが対象(Player_crystal2)に向かって移動してくれません。 (図で移動対象は空中にありますが、プレイ時に地上に持っていきます。) モンスターをPrefabとしてProjectからスポーンさせるのではなく、 はじめからScene内に配置し、TergetもScene内のオブジェクトを設定すれば移動してくれます。 おそらくPrefab関連の使い方が間違っている気がします。。。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7fc522c18b61cf33378d7da01571b43b.png) ### 補足情報(FW/ツールのバージョンなど) Unity 2017.4.15f1 LTS スクリプトはStandard AssetsとToyBoxとVRCSDKのみ利用しており、自身で記述しておりません。 ### 最後に 質問を見てくださりありがとうございます。 大変身勝手なお願いではありますが、もし少しのお時間がありましたら非力な私を助けて下さい。 お忙しい中恐縮ですが、どうぞよろしくお願いいたします。
回答: こちらの記事が参考になるかもしれません. 【Unity】動的に増やすGameObjectは別にPrefabでなくとも良い Project内のオブジェクトはC#でいうクラス定義のようなもので,Scene内に手動で配置するなりInstantiateするなりして初めて実体を持ちます.したがって,Project内のオブジェクトをTargetにしても追いかけることはできず,Scene内の実体をTargetにしなければなりません. そして,Project内のPrefabはScene内オブジェクトを参照できないため,他の手段が必要になります. AI Character ControlがモンスターをInstantiateする役割を持っていて,かつPlayer_crystal2の実体を参照できるのであれば,次の記事のコメント欄で挙げられている方法がスマートだと思います. Prefabからロードした際にアタッチしたものが外れる