弾切れの発生⑤(待機時間を表示する)
![3ca5743a ccc1 476a a2d9 31e3aa8a555f](https://codegenius.org/uploads/slide/image/1722/3ca5743a-ccc1-476a-a2d9-31e3aa8a555f.jpeg)
![Bc39e42e 1a68 49ad bcc2 1b085b29f29b](https://codegenius.org/uploads/slide/image/1723/bc39e42e-1a68-49ad-bcc2-1b085b29f29b.jpeg)
![29e0d212 34aa 47b5 8481 2b263331605d](https://codegenius.org/uploads/slide/image/1724/29e0d212-34aa-47b5-8481-2b263331605d.jpeg)
![0b687c7c 153d 4bbd b144 1cc8323ae296](https://codegenius.org/uploads/slide/image/1725/0b687c7c-153d-4bbd-b144-1cc8323ae296.jpeg)
![27878fb1 0d5e 4ee9 820c 3982ba69b995](https://codegenius.org/uploads/slide/image/1726/27878fb1-0d5e-4ee9-820c-3982ba69b995.jpeg)
![1a375047 7893 412c a33f 058f4ec7feec](https://codegenius.org/uploads/slide/image/1727/1a375047-7893-412c-a33f-058f4ec7feec.jpeg)
http://mono-pro.net/unity-codegenius-danmaku-waittime/画像データ
![2a60e7f5 0396 4392 a078 2694e058867f](https://codegenius.org/uploads/slide/image/1728/2a60e7f5-0396-4392-a078-2694e058867f.jpeg)
![76e1f779 c448 4297 b29d 924daa164223](https://codegenius.org/uploads/slide/image/1729/76e1f779-c448-4297-b29d-924daa164223.jpeg)
![91deab61 d9e3 4d18 a91d e297a6d6a14a](https://codegenius.org/uploads/slide/image/1730/91deab61-d9e3-4d18-a91d-e297a6d6a14a.jpeg)
![A9c89fc0 7188 47c3 a4ec feaa4355d513](https://codegenius.org/uploads/slide/image/1731/a9c89fc0-7188-47c3-a4ec-feaa4355d513.jpeg)
![Ab12c4bc 8746 443c b715 8d2f7ccfddb7](https://codegenius.org/uploads/slide/image/1732/ab12c4bc-8746-443c-b715-8d2f7ccfddb7.jpeg)
![7268f81d 9226 4218 8beb 808056c26dcb](https://codegenius.org/uploads/slide/image/1733/7268f81d-9226-4218-8beb-808056c26dcb.jpeg)
![4ddbe32f d63c 4d16 bedf 99057a91071e](https://codegenius.org/uploads/slide/image/1734/4ddbe32f-d63c-4d16-bedf-99057a91071e.jpeg)
![Ef6ebb8f 8db2 4ce1 8477 136e361b0efd](https://codegenius.org/uploads/slide/image/1735/ef6ebb8f-8db2-4ce1-8477-136e361b0efd.jpeg)
待機時間の表示
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FireMissile : MonoBehaviour
{
public GameObject missilePrefab;
public float missileSpeed;
public AudioClip fireSound;
private int timeCount;
private int maxPower = 100;
private int shotPower;
private Slider powerSlider;
const int RecoveryTime = 10;
private int counter;
// ★追加(発射パワーの表示)
private Slider waitTimeSlider;
void Start()
{
shotPower = maxPower;
powerSlider = GameObject.Find("PowerSlider").GetComponent<Slider>();
powerSlider.maxValue = maxPower;
powerSlider.value = shotPower;
// ★追加(発射パワーの表示)
waitTimeSlider = GameObject.Find("WaitTimeSlider").GetComponent<Slider>();
waitTimeSlider.maxValue = RecoveryTime;
waitTimeSlider.value = RecoveryTime;
}
void Update()
{
if (shotPower <= 0 && counter <= 0)
{
StartCoroutine(RecoverPower());
}
timeCount += 1;
if (Input.GetButton("Fire1"))
{
if (shotPower <= 0)
{
return;
}
shotPower -= 1;
powerSlider.value = shotPower;
if (timeCount % 5 == 0)
{
GameObject missile = Instantiate(missilePrefab, transform.position, Quaternion.identity);
Rigidbody missileRb = missile.GetComponent<Rigidbody>();
missileRb.AddForce(transform.forward * missileSpeed);
AudioSource.PlayClipAtPoint(fireSound, transform.position);
Destroy(missile, 2.0f);
}
}
}
IEnumerator RecoverPower()
{
counter = RecoveryTime;
while (counter > 0)
{
yield return new WaitForSeconds(1.0f);
counter -= 1;
// ★追加(発射パワーの表示)
waitTimeSlider.value = counter;
print("全回復までの残り時間" + counter + "秒");
}
shotPower = maxPower;
powerSlider.value = shotPower;
// ★追加(発射パワーの表示)
// 待機時間が終了したら待機ゲージを最初の状態に戻す。
waitTimeSlider.value = RecoveryTime;
}
public void ResetPower()
{
shotPower = maxPower;
powerSlider.value = shotPower;
counter = 0;
// ★追加(発射パワーの表示)
// プレーヤーが破壊されたら待機ゲージを最初の状態に戻す。
waitTimeSlider.value = RecoveryTime;
}
}
![7fac801f 8038 4505 909d 5045788777d6](https://codegenius.org/uploads/slide/image/1736/7fac801f-8038-4505-909d-5045788777d6.jpeg)
![3ca5743a ccc1 476a a2d9 31e3aa8a555f](https://codegenius.org/uploads/slide/image/1722/3ca5743a-ccc1-476a-a2d9-31e3aa8a555f.jpeg)
![Bc39e42e 1a68 49ad bcc2 1b085b29f29b](https://codegenius.org/uploads/slide/image/1723/bc39e42e-1a68-49ad-bcc2-1b085b29f29b.jpeg)
![29e0d212 34aa 47b5 8481 2b263331605d](https://codegenius.org/uploads/slide/image/1724/29e0d212-34aa-47b5-8481-2b263331605d.jpeg)
![0b687c7c 153d 4bbd b144 1cc8323ae296](https://codegenius.org/uploads/slide/image/1725/0b687c7c-153d-4bbd-b144-1cc8323ae296.jpeg)
![27878fb1 0d5e 4ee9 820c 3982ba69b995](https://codegenius.org/uploads/slide/image/1726/27878fb1-0d5e-4ee9-820c-3982ba69b995.jpeg)
![1a375047 7893 412c a33f 058f4ec7feec](https://codegenius.org/uploads/slide/image/1727/1a375047-7893-412c-a33f-058f4ec7feec.jpeg)
http://mono-pro.net/unity-codegenius-danmaku-waittime/画像データ
![2a60e7f5 0396 4392 a078 2694e058867f](https://codegenius.org/uploads/slide/image/1728/2a60e7f5-0396-4392-a078-2694e058867f.jpeg)
![76e1f779 c448 4297 b29d 924daa164223](https://codegenius.org/uploads/slide/image/1729/76e1f779-c448-4297-b29d-924daa164223.jpeg)
![91deab61 d9e3 4d18 a91d e297a6d6a14a](https://codegenius.org/uploads/slide/image/1730/91deab61-d9e3-4d18-a91d-e297a6d6a14a.jpeg)
![A9c89fc0 7188 47c3 a4ec feaa4355d513](https://codegenius.org/uploads/slide/image/1731/a9c89fc0-7188-47c3-a4ec-feaa4355d513.jpeg)
![Ab12c4bc 8746 443c b715 8d2f7ccfddb7](https://codegenius.org/uploads/slide/image/1732/ab12c4bc-8746-443c-b715-8d2f7ccfddb7.jpeg)
![7268f81d 9226 4218 8beb 808056c26dcb](https://codegenius.org/uploads/slide/image/1733/7268f81d-9226-4218-8beb-808056c26dcb.jpeg)
![4ddbe32f d63c 4d16 bedf 99057a91071e](https://codegenius.org/uploads/slide/image/1734/4ddbe32f-d63c-4d16-bedf-99057a91071e.jpeg)
![Ef6ebb8f 8db2 4ce1 8477 136e361b0efd](https://codegenius.org/uploads/slide/image/1735/ef6ebb8f-8db2-4ce1-8477-136e361b0efd.jpeg)
待機時間の表示
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FireMissile : MonoBehaviour
{
public GameObject missilePrefab;
public float missileSpeed;
public AudioClip fireSound;
private int timeCount;
private int maxPower = 100;
private int shotPower;
private Slider powerSlider;
const int RecoveryTime = 10;
private int counter;
// ★追加(発射パワーの表示)
private Slider waitTimeSlider;
void Start()
{
shotPower = maxPower;
powerSlider = GameObject.Find("PowerSlider").GetComponent<Slider>();
powerSlider.maxValue = maxPower;
powerSlider.value = shotPower;
// ★追加(発射パワーの表示)
waitTimeSlider = GameObject.Find("WaitTimeSlider").GetComponent<Slider>();
waitTimeSlider.maxValue = RecoveryTime;
waitTimeSlider.value = RecoveryTime;
}
void Update()
{
if (shotPower <= 0 && counter <= 0)
{
StartCoroutine(RecoverPower());
}
timeCount += 1;
if (Input.GetButton("Fire1"))
{
if (shotPower <= 0)
{
return;
}
shotPower -= 1;
powerSlider.value = shotPower;
if (timeCount % 5 == 0)
{
GameObject missile = Instantiate(missilePrefab, transform.position, Quaternion.identity);
Rigidbody missileRb = missile.GetComponent<Rigidbody>();
missileRb.AddForce(transform.forward * missileSpeed);
AudioSource.PlayClipAtPoint(fireSound, transform.position);
Destroy(missile, 2.0f);
}
}
}
IEnumerator RecoverPower()
{
counter = RecoveryTime;
while (counter > 0)
{
yield return new WaitForSeconds(1.0f);
counter -= 1;
// ★追加(発射パワーの表示)
waitTimeSlider.value = counter;
print("全回復までの残り時間" + counter + "秒");
}
shotPower = maxPower;
powerSlider.value = shotPower;
// ★追加(発射パワーの表示)
// 待機時間が終了したら待機ゲージを最初の状態に戻す。
waitTimeSlider.value = RecoveryTime;
}
public void ResetPower()
{
shotPower = maxPower;
powerSlider.value = shotPower;
counter = 0;
// ★追加(発射パワーの表示)
// プレーヤーが破壊されたら待機ゲージを最初の状態に戻す。
waitTimeSlider.value = RecoveryTime;
}
}
![7fac801f 8038 4505 909d 5045788777d6](https://codegenius.org/uploads/slide/image/1736/7fac801f-8038-4505-909d-5045788777d6.jpeg)
弾切れの発生⑤(待機時間を表示する)