【Space Shoot Project】Shooting shots

来源:互联网 发布:搭建网络电视台 编辑:程序博客网 时间:2024/06/04 20:09

本节主要控制发射的子弹


1. 在inspector中选中 player,激活组件(reactive the player game object)

2. instantiate a copy of clone of this Shot prefab, instantiate 即复制一份对象

     public static object Instantiate(Object original, Vector3 position, Quaternion rotation)

    返回是个指针,指向复制的GameObject

image

3. create a new game object, name Shot Spown, 放入player ; 使用这个空的对象的 Transform

4.调整子弹(Shot Spawn) 到Ship 前面, 子弹都是从前面发射出来的。 把 prefab 中子弹效果( Bolt) 拖放到Shot Spawn

    定义 Transform sotspawn     或者定义 GameObject ShotSpawn ,那么使用时候  shotspawn.tranform

5. Time.time > nextFire 用来控制时间,即防止子弹发射太快,没有间隔

6. 使用Instantiate 来放置子弹位置

 

    public GameObject shot;    public Transform shotSpawn;    public float fireRate;    private float nextFire;    void Update ()    {        if (Input.GetButton("Fire1") && Time.time > nextFire)        {            nextFire = Time.time + fireRate;            Instantiate(shot, shotSpawn.position, shotSpawn.rotation);        }    }

5. 配置代码中变量

 image

6.测试运行程序,发现Scene 中有许多的Bolt,一直在沿Z运行,下一节需要创建 包围盒,检测出去了界面的子弹,这个问题需要在下一节中设置boundary 来解决

image

0 0