2017-07-20 4 views
1

私は現在、弾丸地獄ゲームで楽しく、UnityとC#のコード作成スキルを研究しています。私は現在、発射物をインスタンス化し、その回転と速度でそのオブジェクトをインスタンス化することに問題があります。発射体の回転をカーソルに向け、速度を固定します。示すように私のコードは次のとおりです。弾丸をカーソルの方向にインスタンス化する方法

Vector3 sp = Camera.main.WorldToScreenPoint (transform.position); 
    Vector3 dir = (Input.mousePosition - sp).normalized; 
    Instantiate (projectile, sp); 
    GetComponent<Rigidbody2D>().AddForce (dir * 500); 

私はそれが私のインスタンス化機能が間違って書かれているという事実に間違っているのですが、私は正しくインスタンス化機能を作成する方法を考え出すに苦労し、どのようにしています知っています弾丸を回転の点でカーソルに向ける。

ご協力いただきありがとうございます。詳細情報が必要な場合は、尋ねてください。

答えて

2

forwardベクトルを設定するか、インスタンス化されたオブジェクトでQuaternion.LookRotation()を使用して回転を設定します。

GameObject bullet = Instantiate(projectile, transform.position, Quaternion.identity); 

    //bullet.transform.forward = dir;    
    bullet.transform.rotation = Quaternion.LookRotation(dir); 

    bullet.GetComponent<Rigidbody2D>().AddForce(dir * 500); 

特に注意する必要があるのは、多くのインスタンスを作成する予定がある場合は、すべての箇条書きを追跡する必要があることです。 object poolingをご覧ください。

関連する問題