質問編集履歴

3 修正

GOTOken

GOTOken score 54

2018/06/10 20:16  投稿

判定内に入っても動かない場合の対処方法とは
![イメージ説明](30942e011cae85c0c8da8820c9d916e9.gif)  
問題点  
---  
今回発生している問題点は、プレイヤーが動いた時にのみ一定間隔動く。という問題点です。  
 
また、カメラにEnemyを移動させるCollider(is Trigger)を用意しているが、動かない。という問題点。  
 
 
実現したいこと
---
Cameraの当たり判定内に入ったらEnemyが-xの方向にのみ移動する。ことをしたい。
 
```c#
   
   public float AutoSpped;
   private void EnemyMove()
   {
      //自動移動処理
       transform.position += new Vector3(AutoSpped, 0.0f, 0.0f);
   }
   private void OnTriggerEnter2D(Collider2D collision)
   {
       //カメラ範囲に入ったら、動き出す
       if (collision.gameObject.name == "Main Camera")
       {
           EnemyMove();
           Debug.Log("入った");
       }
   }
```
このようなコードで、カメラの判定に入ったら、Enemyが動き出すような処理を考えましたが判定内に入っても、処理は通っているはずなのに動きをとってくれませんでした。Main Cameraにそもそも判定系の処理が通らないのでしょうか??  
解決方法
---
```c#
OnTriggerStay2D
```
この関数を使うことで、移動の処理は無事に通ることが出来ましたが、一定時間経つと静止してしまうようになってしまいました。これは、EnemyMove関数の自動移動処理の考え方が間違っているのでしょうか…??
  • C#

    16123 questions

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

  • Unity

    11844 questions

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

  • Unity3D

    3831 questions

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

  • Unity2D

    2817 questions

2 改善

GOTOken

GOTOken score 54

2018/06/10 16:36  投稿

判定内に入っても動かない場合の対処方法とは
実現したいこと  
---  
Cameraの当たり判定内に入ったらEnemyが-xの方向にのみ移動する。ことをしたい。  
 
```c#
   
   public float AutoSpped;
   private void EnemyMove()
   {
      //自動移動処理
       transform.position += new Vector3(AutoSpped, 0.0f, 0.0f);
   }
   private void OnTriggerEnter2D(Collider2D collision)
   {
       //カメラ範囲に入ったら、動き出す
       if (collision.gameObject.name == "Main Camera")
       {
           EnemyMove();
           Debug.Log("入った");
       }
   }
```
このようなコードで、カメラの判定に入ったら、Enemyが動き出すような処理を考えましたが判定内に入っても、処理は通っているはずなのに動きをとってくれませんでした。Main Cameraにそもそも判定系の処理が通らないのでしょうか??
解決方法
---
```c#
OnTriggerStay2D
```
この関数を使うことで、移動の処理は無事に通ることが出来ましたが、一定時間経つと静止してしまうようになってしまいました。これは、EnemyMove関数の自動移動処理の考え方が間違っているのでしょうか…??
  • C#

    16123 questions

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

  • Unity

    11844 questions

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

  • Unity3D

    3831 questions

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

  • Unity2D

    2817 questions

1 文法の修正

GOTOken

GOTOken score 54

2018/06/10 15:36  投稿

判定内に入っても動かない場合の対処方法とは
```c#
   
   public float AutoSpped;
   private void EnemyMove()
   {
      //自動移動処理  
       transform.position += new Vector3(AutoSpped, 0.0f, 0.0f);
   }
   private void OnTriggerEnter2D(Collider2D collision)
   {
       //カメラ範囲に入ったら、動き出す
       if (collision.gameObject.name == "Main Camera")
       {
           EnemyMove();
           Debug.Log("入った");
       }
   }
```
このようなコードで、カメラの判定に入ったら、Enemyが動き出すような処理を考えましたが判定内に入っても、処理は通っているはずなのに動きをとってくれませんでした。Main Cameraにそもそも判定系の処理が通らないのでしょうか??
このようなコードで、カメラの判定に入ったら、Enemyが動き出すような処理を考えましたが判定内に入っても、処理は通っているはずなのに動きをとってくれませんでした。Main Cameraにそもそも判定系の処理が通らないのでしょうか??
解決方法
---
```c#
OnTriggerStay2D
```
この関数を使うことで、移動の処理は無事に通ることが出来ましたが、一定時間経つと静止してしまうようになってしまいました。これは、EnemyMove関数の自動移動処理の考え方が間違っているのでしょうか…??
  • C#

    16123 questions

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

  • Unity

    11844 questions

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

  • Unity3D

    3831 questions

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

  • Unity2D

    2817 questions

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