私のUnity(7)はカメラからレンガの壁に弾丸を少しずつ発射した.


突発的にこのコードを書きたくて、手を練習して、基礎知識はしっかりしなければなりません.
public class Plane11 : MonoBehaviour
{
    public  GameObject m_cubeperfab;
    private GameObject m_cube;
    public  GameObject m_spherePerfab;
    GameObject m_sphere;
    Rigidbody m_rigidbody;


    void Awake ()
    {
        m_rigidbody = m_spherePerfab.GetComponent  ();

        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                m_cube = Instantiate (m_cubeperfab, new  Vector3 (j, i + 0.5f, 0f), Quaternion.identity)as GameObject;
                m_cube.GetComponent  ().material.color = Color.red;
                m_cube.transform.localScale = new Vector3 (0.8f, 0.8f, 0.8f);
            }
        }

    }

    Ray m_ray;
    RaycastHit m_hit;
    Vector3 m_pos;
    public Vector3 m_target;
    Vector3 dir;

    void Update ()
    {
        if (Input.GetMouseButtonDown (0)) {
            m_ray = Camera.main.ScreenPointToRay (Input.mousePosition);
            if (Physics.Raycast (m_ray, out m_hit)) {
                if (m_hit.rigidbody.tag == "Player") {
                    m_pos = m_hit.transform.position;
                }
            }
            m_sphere = Instantiate (m_spherePerfab, Camera.main.transform.position, Quaternion.identity)as GameObject;
            dir = m_pos - Camera.main.transform.position;
            //    :             。              。
            //    。
            print (dir);
            m_sphere.GetComponent  ().AddForce (dir * 600f);
        }
    }

}

注意:プリセットインスタンスの後に必ずフォースを追加してください.さもないと予め設定された弾丸は力を加えることができない.注意が必要です.