private void Update() { if (Input.GetKeyDown("p")) { isshoot = !isshoot; } if (isshoot) { if (Input.GetKeyDown("1")) { isChanged = true; weapenstate = Weapenstate.High; } else if (Input.GetKeyDown("2")) { isChanged = true; weapenstate = Weapenstate.Middle; } else if (Input.GetKeyDown("3")) { isChanged = true; weapenstate = Weapenstate.Low; } switch (weapenstate) { case Weapenstate.High: if (isChanged) { BulletPool.Instance.DeleteObjects(BulletPool.Instance.bullets.Count); if (BulletPool.Instance.Poolnum == 0) { isChanged = false; isLoaded = false; } } if (!isLoaded) { isLoaded = true; BulletPool.Instance._Prefeb = Bullet_1; BulletPool.Instance.AddObjects(4); } break; case Weapenstate.Middle: if (isChanged) { BulletPool.Instance.DeleteObjects(BulletPool.Instance.bullets.Count); if (BulletPool.Instance.Poolnum == 0) { isChanged = false; isLoaded = false; } } if (!isLoaded) { isLoaded = true; BulletPool.Instance._Prefeb = Bullet_2; BulletPool.Instance.AddObjects(4); } break; case Weapenstate.Low: if (isChanged) { BulletPool.Instance.DeleteObjects(BulletPool.Instance.bullets.Count); if (BulletPool.Instance.Poolnum == 0) { isChanged = false; isLoaded = false; } } if (!isLoaded) { isLoaded = true; BulletPool.Instance._Prefeb = Bullet_3; BulletPool.Instance.AddObjects(4); } break; default: break; } var CurrentBullet = BulletPool.Instance._Prefeb; if (!isChanged) { if (Input.GetButton("Fire1") && Time.time >= nextShootTime) { nextShootTime = Time.time + 1f / CurrentBullet.ShootDelay.Value; var bullet = BulletPool.Instance.Get(); bullet.transform.position = Gunpoint.transform.position; foreach (Transform child in bullet.transform) { child.gameObject.SetActive(true); } //bullet.transform.GetChild(0).gameObject.SetActive(true); bullet.gameObject.SetActive(true); // 具体的射击调用在此---因为最初的枪的属性是根据这种判断时间来设置的 bullet.GetComponent <ShotGenericPooled>().Shoot(); // } } } else { weapenstate = Weapenstate.High; } }
// Update is called once per frame void Update() { if (Input.GetKeyDown("p")) { isshoot = !isshoot; } if (isshoot) { _cShootUp = maincam.transform; if (Input.GetKeyDown("1")) { weapenstate = Weapenstate.High; Currentbullet = bullet1; } else if (Input.GetKeyDown("2")) { weapenstate = Weapenstate.Middle; Currentbullet = bullet2; } else if (Input.GetKeyDown("3")) { weapenstate = Weapenstate.Low; Currentbullet = bullet3; } switch (weapenstate) { case Weapenstate.High: if (Input.GetButton("Fire1") && Time.time >= nextShootTime) { nextShootTime = Time.time + 1f / Currentbullet.ShootDelay.Value; Shoot(); } break; case Weapenstate.Middle: if (Input.GetButton("Fire1") && Time.time >= nextShootTime) { nextShootTime = Time.time + 1f / Currentbullet.ShootDelay.Value; Shoot(); } break; case Weapenstate.Low: _cShootUp = GameObject.FindWithTag("Player").transform; if (Input.GetButton("Fire1") && Time.time >= nextShootTime) { nextShootTime = Time.time + 1f / Currentbullet.ShootDelay.Value; Shoot(); } break; default: break; } } else { weapenstate = Weapenstate.High; } }
private void Start() { nextShootTime = 0; Gunpoint = GameObject.Find("Gun"); weapenstate = Weapenstate.High; }