質問編集履歴

4 追記

Futahei

Futahei score 74

2018/03/05 12:26  投稿

[Unity]NavMeshを用いて自動追尾する敵を作りたい
### 前提・実現したいこと
Unityでプレイヤーを追ってくる敵を作成しようとNavMeshの機能を用いることにしました。ステージをstaticに設定し、Navigationウィンドウから適切なAgent Sizeを決めてからBakeしました。
Unity標準のCylinderにNavMeshAgentコンポーネントを追加して、Sizeを整えた後
以下のスクリプトを追加しました。
```c#
public class Enemy : MonoBehaviour {
   public NavMeshAgent agent;
   public GameObject target;
   void Start () {
       agent = GetComponent<NavMeshAgent>();
   }
   void Update () {
       agent.destination = target.transform.position;
   }
}
```
targetに、ステージに置いたGameObjectを設定してゲームを実行しましたがエラーメッセージがでてうまく動きません。
### 発生している問題・エラーメッセージ
```
"SetDestination" can only be called on an active agent that has been places on NavMesh
```
Update毎にエラーが発生してます。
### 試したこと
NavMeshを焼き直したり、AgentやTargetの位置を高くしたり低くしたりしました。
StageはNavigation Staticになっています。
Unityの再起動も行いました。
### 補足情報
Unity 2017.3.0f3(64bit)
![ステージ外観](a740dc5326866c0beafab8308b9680a8.png)
![イメージ説明](5ffbccf2b8d38e32a42134fff98ccdae.png)
###追記
単純に、経路探索がうまくいくまで待つ方法が分からないということではなく、いつまでも経路が発見されず、エージェントが動かないということです。
単純に、経路探索がうまくいくまで待つ方法が分からないということではなく、いつまでも経路が発見されず、エージェントが動かないということです。
![Navigation窓](06cf4ab53727928bf9cfce9b5ef58b7d.png)
  • C#

    12587 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    8536 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    2829 questions

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

3 追記

Futahei

Futahei score 74

2018/03/04 21:56  投稿

[Unity]NavMeshを用いて自動追尾する敵を作りたい
### 前提・実現したいこと
Unityでプレイヤーを追ってくる敵を作成しようとNavMeshの機能を用いることにしました。ステージをstaticに設定し、Navigationウィンドウから適切なAgent Sizeを決めてからBakeしました。
Unity標準のCylinderにNavMeshAgentコンポーネントを追加して、Sizeを整えた後
以下のスクリプトを追加しました。
```c#
public class Enemy : MonoBehaviour {
   public NavMeshAgent agent;
   public GameObject target;
   void Start () {
       agent = GetComponent<NavMeshAgent>();
   }
   void Update () {
       agent.destination = target.transform.position;
   }
}
```
targetに、ステージに置いたGameObjectを設定してゲームを実行しましたがエラーメッセージがでてうまく動きません。
### 発生している問題・エラーメッセージ
```
"SetDestination" can only be called on an active agent that has been places on NavMesh
```
Update毎にエラーが発生してます。
### 試したこと
NavMeshを焼き直したり、AgentやTargetの位置を高くしたり低くしたりしました。
StageはNavigation Staticになっています。
Unityの再起動も行いました。
### 補足情報
Unity 2017.3.0f3(64bit)
![ステージ外観](a740dc5326866c0beafab8308b9680a8.png)
![イメージ説明](5ffbccf2b8d38e32a42134fff98ccdae.png)
![イメージ説明](5ffbccf2b8d38e32a42134fff98ccdae.png)
###追記
単純に、経路探索がうまくいくまで待つ方法が分からないということではなく、いつまでも経路が発見されず、エージェントが動かないということです。
  • C#

    12587 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    8536 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    2829 questions

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

2 タグを追加

Futahei

Futahei score 74

2018/03/04 12:35  投稿

[Unity]NavMeshを用いて自動追尾する敵を作りたい
### 前提・実現したいこと
Unityでプレイヤーを追ってくる敵を作成しようとNavMeshの機能を用いることにしました。ステージをstaticに設定し、Navigationウィンドウから適切なAgent Sizeを決めてからBakeしました。
Unity標準のCylinderにNavMeshAgentコンポーネントを追加して、Sizeを整えた後
以下のスクリプトを追加しました。
```c#
public class Enemy : MonoBehaviour {
public NavMeshAgent agent;
public GameObject target;
void Start () {
agent = GetComponent<NavMeshAgent>();
}
void Update () {
agent.destination = target.transform.position;
}
}
```
targetに、ステージに置いたGameObjectを設定してゲームを実行しましたがエラーメッセージがでてうまく動きません。
### 発生している問題・エラーメッセージ
```
"SetDestination" can only be called on an active agent that has been places on NavMesh
```
Update毎にエラーが発生してます。
### 試したこと
NavMeshを焼き直したり、AgentやTargetの位置を高くしたり低くしたりしました。
StageはNavigation Staticになっています。
Unityの再起動も行いました。
### 補足情報
Unity 2017.3.0f3(64bit)
![ステージ外観](a740dc5326866c0beafab8308b9680a8.png)
![イメージ説明](5ffbccf2b8d38e32a42134fff98ccdae.png)
  • C#

    12587 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    8536 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    2829 questions

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

1 タイトルの修正

Futahei

Futahei score 74

2018/03/04 00:15  投稿

### 前提・実現したいこと
Unityでプレイヤーを追ってくる敵を作成しようとNavMeshの機能を用いることにしました。ステージをstaticに設定し、Navigationウィンドウから適切なAgent Sizeを決めてからBakeしました。
Unity標準のCylinderにNavMeshAgentコンポーネントを追加して、Sizeを整えた後
以下のスクリプトを追加しました。
```c#
public class Enemy : MonoBehaviour {
   public NavMeshAgent agent;
   public GameObject target;
   void Start () {
       agent = GetComponent<NavMeshAgent>();
   }
   void Update () {
       agent.destination = target.transform.position;
   }
}
```
targetに、ステージに置いたGameObjectを設定してゲームを実行しましたがエラーメッセージがでてうまく動きません。
### 発生している問題・エラーメッセージ
```
"SetDestination" can only be called on an active agent that has been places on NavMesh
```
Update毎にエラーが発生してます。
### 試したこと
NavMeshを焼き直したり、AgentやTargetの位置を高くしたり低くしたりしました。StageはNavigation Staticになっています。
NavMeshを焼き直したり、AgentやTargetの位置を高くしたり低くしたりしました。
StageはNavigation Staticになっています。
Unityの再起動も行いました。
### 補足情報
Unity 2017.3.0f3(64bit)
![ステージ外観](a740dc5326866c0beafab8308b9680a8.png)
![イメージ説明](5ffbccf2b8d38e32a42134fff98ccdae.png)
  • C#

    12587 questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Unity

    8536 questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る