回復アイテムを実行する
![06e30d47 1832 4f8c a704 8b18ee3a6297](https://codegenius.org/uploads/slide/image/2759/06e30d47-1832-4f8c-a704-8b18ee3a6297.jpeg)
![C07bba18 8891 47f6 aded 60124a3aab37](https://codegenius.org/uploads/slide/image/2760/c07bba18-8891-47f6-aded-60124a3aab37.jpeg)
ShotBulletの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShotBullet : MonoBehaviour {
public GameObject bulletPrefab;
public AudioClip shotSound;
public float shotSpeed;
public static int shotBulletCount = 60;
public static int bulletItemCount = 0;
public Text bulletNum;
public Text bulletItemNum;
// ★追加
public AudioClip chargeSound;
void Start(){
bulletNum.color = Color.white;
bulletNum.text = shotBulletCount + "/60";
bulletItemNum.text = "× " + bulletItemCount;
}
void Update () {
if (Input.GetKeyDown (KeyCode.Space)) {
if (shotBulletCount < 1) {
return;
}
shotBulletCount -= 1;
bulletNum.text = shotBulletCount + "/60";
bulletItemNum.text = "× " + bulletItemCount;
GameObject bullet = (GameObject)Instantiate (bulletPrefab, transform.position, Quaternion.Euler (transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0));
Rigidbody bulletRb = bullet.GetComponent<Rigidbody> ();
bulletRb.AddForce (transform.forward * shotSpeed);
AudioSource.PlayClipAtPoint (shotSound, Camera.main.transform.position);
Destroy (bullet, 2.0f);
}
// ★追加
// マウス・スクロールボタンを押した時、
if(Input.GetMouseButtonDown(2)){
// (復習)「return」の意味と使い方を復習しましょう!
// 回復アイテムの数が0になったら回復しないようにする
if(bulletItemCount < 1){
return;
}
// 回復アイテムの数を1ずつ減らす
bulletItemCount -= 1;
// 回復アイテムの残りの数を画面(パネル)に表示する
bulletItemNum.text = "× " + bulletItemCount;
// チャージ音を鳴らす。
AudioSource.PlayClipAtPoint (chargeSound, Camera.main.transform.position);
// ライフルの残弾数を10回復させる。
shotBulletCount += 10;
// 最大値以上には弾数が回復しないようにする。
if (shotBulletCount > 60) {
shotBulletCount = 60;
}
// 残弾数を画面(パネル)に表示する
bulletNum.text = shotBulletCount + "/60";
}
}
public void AddBulletItem(int amount){
bulletItemCount += amount;
print ("ライフル弾の回復の権利" + bulletItemCount + "回");
bulletItemNum.text = "× " + bulletItemCount;
}
}
![0f470804 de7a 439b a11f 399ed041640c](https://codegenius.org/uploads/slide/image/2761/0f470804-de7a-439b-a11f-399ed041640c.jpeg)
![Ad25c2b0 f86a 4577 a2fd 4401091faa1e](https://codegenius.org/uploads/slide/image/2762/ad25c2b0-f86a-4577-a2fd-4401091faa1e.jpeg)
![0db6b7ba 87b5 4cc8 b60e 803512071a6c](https://codegenius.org/uploads/slide/image/2763/0db6b7ba-87b5-4cc8-b60e-803512071a6c.jpeg)
![240450a7 46f1 427b 8c8d 4ca9a9fb0e85](https://codegenius.org/uploads/slide/image/2764/240450a7-46f1-427b-8c8d-4ca9a9fb0e85.jpeg)
![156184bd b0aa 4357 a7d0 fb7b92ad235d](https://codegenius.org/uploads/slide/image/2765/156184bd-b0aa-4357-a7d0-fb7b92ad235d.jpeg)
ShotRocketの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShotRocket : MonoBehaviour {
public GameObject rocketPrefab;
public AudioClip shotSound;
public float rocketSpeed;
private float timeBetweenShot = 1.2f;
private float timer;
public static int shotRocketCount = 30;
public static int RocketItemCount = 0;
public Text rocketNum;
public Text rocketItemNum;
// ★追加
public AudioClip chargeSound;
void Start(){
rocketNum.color = Color.white;
rocketNum.text = shotRocketCount + "/30";
rocketItemNum.text = "× " + RocketItemCount;
}
void Update () {
timer += Time.deltaTime;
if (Input.GetKeyDown (KeyCode.Space) && timer > timeBetweenShot) {
if (shotRocketCount < 1) {
return;
}
shotRocketCount -= 1;
rocketNum.text = shotRocketCount + "/30";
rocketItemNum.text = "× " + RocketItemCount;
timer = 0.0f;
GameObject rocket = (GameObject)Instantiate (rocketPrefab, transform.position, Quaternion.Euler (transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0));
Rigidbody rocketRb = rocket.GetComponent<Rigidbody> ();
rocketRb.AddForce (transform.forward * rocketSpeed);
AudioSource.PlayClipAtPoint (shotSound, Camera.main.transform.position);
Destroy (rocket, 3.0f);
}
// ★追加
// マウス・スクロールボタンを押した時、
if(Input.GetMouseButtonDown(2)){
// (復習)「return」の意味と使い方を復習しましょう!
// 回復アイテムの数が0になったら回復しないようにする
if(RocketItemCount < 1){
return;
}
// 回復アイテムの数を1ずつ減らす
RocketItemCount -= 1;
// 回復アイテムの残りの数を画面(パネル)に表示する
rocketItemNum.text = "× " + RocketItemCount;
// チャージ音を鳴らす。
AudioSource.PlayClipAtPoint (chargeSound, Camera.main.transform.position);
// ロケットランチャーの残弾数を5回復させる。
shotRocketCount += 5;
// 最大値以上には弾数が回復しないようにする。
if (shotRocketCount > 30) {
shotRocketCount = 30;
}
// 残弾数を画面(パネル)に表示する
rocketNum.text = shotRocketCount + "/30";
}
}
public void AddRocketItem(int amount){
RocketItemCount += amount;
print ("ロケット弾の回復の権利" + RocketItemCount + "回");
rocketItemNum.text = "× " + RocketItemCount;
}
}
![3e9944cc 0772 427c af31 bac36b2b6bc6](https://codegenius.org/uploads/slide/image/2766/3e9944cc-0772-427c-af31-bac36b2b6bc6.jpeg)
EscapeCombat(メモ)
他のコースを見る![06e30d47 1832 4f8c a704 8b18ee3a6297](https://codegenius.org/uploads/slide/image/2759/06e30d47-1832-4f8c-a704-8b18ee3a6297.jpeg)
![C07bba18 8891 47f6 aded 60124a3aab37](https://codegenius.org/uploads/slide/image/2760/c07bba18-8891-47f6-aded-60124a3aab37.jpeg)
ShotBulletの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShotBullet : MonoBehaviour {
public GameObject bulletPrefab;
public AudioClip shotSound;
public float shotSpeed;
public static int shotBulletCount = 60;
public static int bulletItemCount = 0;
public Text bulletNum;
public Text bulletItemNum;
// ★追加
public AudioClip chargeSound;
void Start(){
bulletNum.color = Color.white;
bulletNum.text = shotBulletCount + "/60";
bulletItemNum.text = "× " + bulletItemCount;
}
void Update () {
if (Input.GetKeyDown (KeyCode.Space)) {
if (shotBulletCount < 1) {
return;
}
shotBulletCount -= 1;
bulletNum.text = shotBulletCount + "/60";
bulletItemNum.text = "× " + bulletItemCount;
GameObject bullet = (GameObject)Instantiate (bulletPrefab, transform.position, Quaternion.Euler (transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0));
Rigidbody bulletRb = bullet.GetComponent<Rigidbody> ();
bulletRb.AddForce (transform.forward * shotSpeed);
AudioSource.PlayClipAtPoint (shotSound, Camera.main.transform.position);
Destroy (bullet, 2.0f);
}
// ★追加
// マウス・スクロールボタンを押した時、
if(Input.GetMouseButtonDown(2)){
// (復習)「return」の意味と使い方を復習しましょう!
// 回復アイテムの数が0になったら回復しないようにする
if(bulletItemCount < 1){
return;
}
// 回復アイテムの数を1ずつ減らす
bulletItemCount -= 1;
// 回復アイテムの残りの数を画面(パネル)に表示する
bulletItemNum.text = "× " + bulletItemCount;
// チャージ音を鳴らす。
AudioSource.PlayClipAtPoint (chargeSound, Camera.main.transform.position);
// ライフルの残弾数を10回復させる。
shotBulletCount += 10;
// 最大値以上には弾数が回復しないようにする。
if (shotBulletCount > 60) {
shotBulletCount = 60;
}
// 残弾数を画面(パネル)に表示する
bulletNum.text = shotBulletCount + "/60";
}
}
public void AddBulletItem(int amount){
bulletItemCount += amount;
print ("ライフル弾の回復の権利" + bulletItemCount + "回");
bulletItemNum.text = "× " + bulletItemCount;
}
}
![0f470804 de7a 439b a11f 399ed041640c](https://codegenius.org/uploads/slide/image/2761/0f470804-de7a-439b-a11f-399ed041640c.jpeg)
![Ad25c2b0 f86a 4577 a2fd 4401091faa1e](https://codegenius.org/uploads/slide/image/2762/ad25c2b0-f86a-4577-a2fd-4401091faa1e.jpeg)
![0db6b7ba 87b5 4cc8 b60e 803512071a6c](https://codegenius.org/uploads/slide/image/2763/0db6b7ba-87b5-4cc8-b60e-803512071a6c.jpeg)
![240450a7 46f1 427b 8c8d 4ca9a9fb0e85](https://codegenius.org/uploads/slide/image/2764/240450a7-46f1-427b-8c8d-4ca9a9fb0e85.jpeg)
![156184bd b0aa 4357 a7d0 fb7b92ad235d](https://codegenius.org/uploads/slide/image/2765/156184bd-b0aa-4357-a7d0-fb7b92ad235d.jpeg)
ShotRocketの改良
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ShotRocket : MonoBehaviour {
public GameObject rocketPrefab;
public AudioClip shotSound;
public float rocketSpeed;
private float timeBetweenShot = 1.2f;
private float timer;
public static int shotRocketCount = 30;
public static int RocketItemCount = 0;
public Text rocketNum;
public Text rocketItemNum;
// ★追加
public AudioClip chargeSound;
void Start(){
rocketNum.color = Color.white;
rocketNum.text = shotRocketCount + "/30";
rocketItemNum.text = "× " + RocketItemCount;
}
void Update () {
timer += Time.deltaTime;
if (Input.GetKeyDown (KeyCode.Space) && timer > timeBetweenShot) {
if (shotRocketCount < 1) {
return;
}
shotRocketCount -= 1;
rocketNum.text = shotRocketCount + "/30";
rocketItemNum.text = "× " + RocketItemCount;
timer = 0.0f;
GameObject rocket = (GameObject)Instantiate (rocketPrefab, transform.position, Quaternion.Euler (transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0));
Rigidbody rocketRb = rocket.GetComponent<Rigidbody> ();
rocketRb.AddForce (transform.forward * rocketSpeed);
AudioSource.PlayClipAtPoint (shotSound, Camera.main.transform.position);
Destroy (rocket, 3.0f);
}
// ★追加
// マウス・スクロールボタンを押した時、
if(Input.GetMouseButtonDown(2)){
// (復習)「return」の意味と使い方を復習しましょう!
// 回復アイテムの数が0になったら回復しないようにする
if(RocketItemCount < 1){
return;
}
// 回復アイテムの数を1ずつ減らす
RocketItemCount -= 1;
// 回復アイテムの残りの数を画面(パネル)に表示する
rocketItemNum.text = "× " + RocketItemCount;
// チャージ音を鳴らす。
AudioSource.PlayClipAtPoint (chargeSound, Camera.main.transform.position);
// ロケットランチャーの残弾数を5回復させる。
shotRocketCount += 5;
// 最大値以上には弾数が回復しないようにする。
if (shotRocketCount > 30) {
shotRocketCount = 30;
}
// 残弾数を画面(パネル)に表示する
rocketNum.text = shotRocketCount + "/30";
}
}
public void AddRocketItem(int amount){
RocketItemCount += amount;
print ("ロケット弾の回復の権利" + RocketItemCount + "回");
rocketItemNum.text = "× " + RocketItemCount;
}
}
![3e9944cc 0772 427c af31 bac36b2b6bc6](https://codegenius.org/uploads/slide/image/2766/3e9944cc-0772-427c-af31-bac36b2b6bc6.jpeg)
回復アイテムを実行する