私のUnity(7)はカメラからレンガの壁に弾丸を少しずつ発射した.
2822 ワード
突発的にこのコードを書きたくて、手を練習して、基礎知識はしっかりしなければなりません.
注意:プリセットインスタンスの後に必ずフォースを追加してください.さもないと予め設定された弾丸は力を加えることができない.注意が必要です.
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);
}
}
}
注意:プリセットインスタンスの後に必ずフォースを追加してください.さもないと予め設定された弾丸は力を加えることができない.注意が必要です.