2017-04-17 40 views
0

銃型のゲームでプレイヤーに敵が撃たれる学校のために割り当てが必要です。私はUnityチュートリアルのLookAt()関数を読んで、それを私の知識に使用しました。しかし、それは動作していないようです。UnityでLookAt()関数を使用する

public class EnemyControl : MonoBehaviour { 
private Rigidbody rb; 
public GameObject Bullet_Emitter2; 
public GameObject EnemyBullet; 
public float speedOfBullet; 
private int score; 
public Text countText; 
public Text winText; 
private GameObject Temporart_Bullet_Handler2; 
public Transform player; 
public Transform enemy; 

void Start() 
{ 
    rb = GetComponent<Rigidbody>(); 
    score = 0; 
} 

private void Update() 
{ 
    enemy.LookAt(player); 
} 
// Update is called once per frame 
void FixedUpdate() { 
    int fire = Random.Range(0, 100); 
    if(fire == 0 || fire == 1 || fire == 5) 
    { 
     Temporart_Bullet_Handler2 = Instantiate(EnemyBullet, Bullet_Emitter2.transform.position, Bullet_Emitter2.transform.rotation) as GameObject; 

     Temporart_Bullet_Handler2.transform.Rotate(Vector3.right * 90); 
     Rigidbody Temporary_Rigid_Body; 
     Temporary_Rigid_Body = Temporart_Bullet_Handler2.GetComponent<Rigidbody>(); 

     Temporary_Rigid_Body.AddForce(transform.up * speedOfBullet); 

     Destroy(Temporart_Bullet_Handler2, 20.0f); 
    } 
} 

}

問題は、今私の敵である私の代わりに地面を見て、そしてちょうど下に撃つ:次のコードは、私がこれまで持っているものです。私はこれを解決する方法はありますか?私はゲームをプレイしているプレイヤーに見た目のイメージを付けましたか?

enter image description here

ルックアット()に入れる前に、私の宇宙飛行士がちょうど直線で静止し、火災弾丸だろう機能が、私はAIが静止するのではなく、プレイヤーを追跡する必要があります。 LookAt()を使用せずにこれを行う別の方法がありますか、この関数を間違って使用していますか?

事前にお世話になりましたか?に要求される

+1

あなたの敵のZ軸が向いていると予想される方向に並んでいると確信していますか? 'LookAt()'はすべて、指定された点にあるオブジェクトのz軸を指します。 – Serlite

答えて

0

私はコメントでこれを投稿だろうが、私はできませんまだ低いため評判の


Serliteが指摘したように、LookAt()だけでゲームオブジェクトのtrasnform.forwardに直面しています(オブジェクトが回転していないときは(0、0、1)です)。これは単純に今、あなたは方法で(親を回して)あなたのオブジェクトのための世界的な回転を設定することができ、あなたのHirarchyに空のゲームオブジェクトを追加し、その子として

Empty GameObject 
- AI GameObject (with your script) 

をごAIオブジェクトを設定して「修正」に

AIの前方がz +に向いていること。

関連する問題