質問: Instantiate(target, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.Euler(0, 180, 0)) as GameObject; } } 結果的には、これで敵車のインスタンスは生成されますが、 走りません。 調べてみたところ、アタッチされている WaypointRrogressTracker(script)の 「Circuit」がNone(Waypoint Circuit)、 CarAIControl(script)の 「Target」がNone(Transform)になっています。 そこでゲームを動かしたまま、Inspector上で、 「Circuit」と「Target」を手動でアサインし、 CarAIControl(script)をenableにすると、 普通に走り出します。 しかし、どちらもインスタンスが生成されていない状態では、 アサインできない様です。 (敵車のインスタンスと同時に生成される CarWaypointBased(Clone) Waypoint Target等を 渡さなければならないみたいです。) それならと、インスタンスを生成した後で、 スクリプトからセットしようとしたのですが、 Inspectorからは設定できるのに、 GetComponentでスクリプトに渡そうとしても、 「Circuit」や「Target」の引数が見あたりません。 スクリプトで生成した敵車のインスタンスに、 WaypointRrogressTracker(script)の 「Circuit」とCarAIControl(script)の 「Target」をセットするのは、どの様にすれば良いでしょうか? 色々調べてみたのですが、誰もはまらないのか、 情報が見つけられませんでした。 どうかご教示、お願いします。
回答: WaypointRrogressTrackerについては、 ``` [SerializeField] private WaypointCircuit circuit; // A reference to the waypoint-based route we should follow ``` となっているところが、Inspectorに表示される部分です。 これを、 ``` public WaypointCircuit circuit; // A reference to the waypoint-based route we should follow ``` とすることで、スクリプト上で変更することが出来るようになります。 CarAIControlについては、以下のような関数があったので、これを使えばよいと思います。 ``` public void SetTarget(Transform target) { m_Target = target; m_Driving = true; } ```