用Unity做一个打飞机(附素材、项目)第二部分

(接上篇文章)

二、子弹的发射

1、在角色下新建一个项目,并调整,作为子弹生成的地方,我叫它子弹生成器。并且将子弹插入进游戏,为子弹添加碰撞体和一个“move”脚本

2、修改move脚本

public float speed;//这里要自己在unity里面赋值

    void Update()

    {

         transform.Translate(Vector3.up * speed * Time.deltaTime);

        if (transform.position.y >= 5.0f)//这里是子弹飞到哪里之后会消失,我是y轴为5的地方,大家可以自己试一试可能会不一样

        {

            Destroy(this.gameObject);

        }

    }

3、在项目列表里面创建一个“预设”文件夹,将我们做好的子弹拖入,作为我们的预制体

4、在我们刚刚做的子弹生成器添加一个代码,命名为“fire”

public float time;//子弹生成的时间差(多长时间生成一个子弹)

    public GameObject zidan;//将子弹实例化

    void Start()

    {

        Fire();

    }

    public void Fire()

    {

        InvokeRepeating("move", 1, time);

    }

    public void move()

    {

        GameObject.Instantiate(zidan, transform.position, Quaternion.identity);

    }

如此,子弹的发射就做出来了

三、背景的滚动

1、我们先创建一个新的3D物体——Quad,将他调整为和我们的摄像机一样大,然后将他的z轴调整到比我们的角色大一点的(具体多少随自己喜好)

2、新建一个Material(材质球),并且调整材质球的shader,调整为texture(Unlit——>texture)然后导入我们的背景图片,完成后将材质球导入到Quad上,Quad改名为“背景”。

3、在背景下添加一个代码名为“Background”

Material material;//定义材质

Vector2 movement;//定义移动

public Vector2 speed;//定义速度(因为材质球的移动和普通移动不同,所以我们要定义成vector2)

void Start()

    {

        material = GetComponent<Renderer>().material;  //我们不能直接的引用材质球中的Material组件,只能一步步的移动)

    }

    void Update()

    {

        movement += speed * Time.deltaTime;

        material.mainTextureOffset = movement;

    }

*其中,在unity中赋值时我们只用改变Y轴大小即可,整数则是向下移动,负数为向上移动。我这里改成了0.1感觉十分合适

我的背景

**X轴是控制左右移动的,感兴趣的可以自己动手试一试。

如此,背景的滚动效果就做好了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。