本节主要控制发射的子弹
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
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. 配置代码中变量
6.测试运行程序,发现Scene 中有许多的Bolt,一直在沿Z运行,下一节需要创建 包围盒,检测出去了界面的子弹,这个问题需要在下一节中设置boundary 来解决