Unity3D制作简易坦克旋转发射子弹

项目:制作一个坦克,让它在旋转的同时发射子弹,并且让它在两秒之后销毁

问题:1.子弹怎么连续产生?

答:拖成预设体

2.子弹怎么停留两秒后销毁

答:用Destroy();放在Start函数中,每次产生新子弹之前把之前销毁之前的子弹

解析:

1.创建一个简易的坦克,里面包含以下对象(还有一个子弹模型,拖成预设体)


Unity3D制作简易坦克旋转发射子弹_第1张图片

GameObject这个空物体是发射子弹的地方,如图示


Unity3D制作简易坦克旋转发射子弹_第2张图片

注意:要想子弹发射的方向跟炮筒Cylinder的方向一致,必须将子弹和GameObject的rotation都设成跟炮筒Cylinder的一样

2.创建一个FlyScript脚本挂在子弹身上,实现子弹的发射和销毁

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassFlyScript:MonoBehaviour

{

voidStart()

{

//每产生一个新子弹之前,进行一次销毁的操作,每2秒销毁一个子弹

Destroy(gameObject,2f);

}

voidUpdate()

{

//发射子弹,transform.up是自身方向的y轴,加上Space.World后就是相对于世界坐标的方向

transform.Translate(transform.up,Space.World);

}

}

3.创建一个脚本挂在GameObject(即发射口)上实现子弹连续不断的产生

将子弹bullets预设体拖动这里


Unity3D制作简易坦克旋转发射子弹_第3张图片

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassTankScript:MonoBehaviour

{

//子弹

publicGameObjectbullets;

//计时器

privatefloattimer;

voidUpdate()

{//每一秒产生一颗子弹

timer+=Time.deltaTime;

if(timer>=1f){

timer=0;

Instantiate(bullets,transform.position,transform.rotation);

}

}

}

4.创建一个脚本挂在Tank身上实现坦克的匀速旋转

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

publicclassRotateScript:MonoBehaviour

{

voidUpdate()

{

//使得坦克匀速旋转

transform.Rotate(0,5*Time.deltaTime,0);

}

}

你可能感兴趣的:(Unity3D制作简易坦克旋转发射子弹)