(接上篇文章)
二、子弹的发射
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轴是控制左右移动的,感兴趣的可以自己动手试一试。
如此,背景的滚动效果就做好了