unity学习之子弹发射

欢迎来到unity学习教育专区,这里有丰富的unity资源,相信一定可以给你带来收获


今天我们根据昨天的知识讲了怎样发射子弹,并让子弹把墙打到


效果图如下:


  1. using UnityEngine;
  2. using System.Collections;

  3. public class fire : MonoBehaviour {

  4.     float speed = 5.0f;
  5.     public GameObject newObject;
  6.     float firetima = 0.2f;
  7.     float nexttime = 0.0f;

  8.         // Use this for initialization
  9.         void Start () {
  10.             
  11.         }
  12.         
  13.         // Update is called once per frame
  14.         void Update () {
  15.         float a = -25 * Time.deltaTime;
  16.         float x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
  17.         float z = Input.GetAxis("Vertical") * Time.deltaTime * speed;
  18.         transform.Translate(x, 0, z);
  19.         if (Input.GetKey(KeyCode.Z))
  20.         {
  21.             transform.Rotate(Vector3.up * a, Space.Self);
  22.         }
  23.         if (Input.GetKey(KeyCode.X))
  24.         {
  25.             transform.Rotate(Vector3.down * a, Space.Self);
  26.         }
  27.         if (Input.GetButton("Fire1") && nexttime < Time.time)
  28.         {
  29.             nexttime = firetima + Time.time;
  30.             GameObject go = Instantiate(newObject, transform.position, transform.rotation) as GameObject;
  31.             go.rigidbody.AddForce(0, 0, 1231);

  32.         }
  33.     }
  34. }

然后下午又讲了一个小游戏:飞机大战,不过才实现了其中的一小部分功能:点击鼠标左键或空格键,我方飞机发射子弹

效果图如下:


代码如下:

  1. using UnityEngine;
  2. using System.Collections;

  3. public class Player : MonoBehaviour {
  4.         float speed = -50.0f;
  5.         public GameObject Myplayer;

  6.         void Update()
  7.         {
  8.                 float a =  Time.deltaTime;
  9.                 float x = Input.GetAxis("Horizontal") * Time.deltaTime * -speed;
  10.                 float z = Input.GetAxis("Vertical") * Time.deltaTime * -speed;
  11.                 transform.Translate(x, 0, z);
  12.                 if (Input.GetButton("Fire1") )
  13.                 {
  14.                         //nexttime = firetima + Time.time;
  15.                         GameObject go = Instantiate(Myplayer, transform.position, transform.rotation) as GameObject;
  16.                         go.rigidbody.AddForce(0, 0, 1231);
  17.                         Destroy(go,2.0f);
  18.                 }       
  19.         }
  20. }
不要忘了吧子弹拖到预设体中,还要给子弹加上刚体,最重要是下图所指:


更多精彩请点击 http://www.gopedu.com/article


你可能感兴趣的:(学习整理)