ボタン長押しで連射できるようにする
![Aebb815f cb26 4c73 bd34 90e3ed2058b4](https://codegenius.org/uploads/slide/image/1424/aebb815f-cb26-4c73-bd34-90e3ed2058b4.jpeg)
![2ea5c9c4 31e2 4041 bfbb 09915ce82188](https://codegenius.org/uploads/slide/image/1425/2ea5c9c4-31e2-4041-bfbb-09915ce82188.jpeg)
![8c88755f 75f3 4a9f 8a38 0e37457e087b](https://codegenius.org/uploads/slide/image/1426/8c88755f-75f3-4a9f-8a38-0e37457e087b.jpeg)
![1a5454a5 4f2e 427b ba82 9f1249f8a4d6](https://codegenius.org/uploads/slide/image/1427/1a5454a5-4f2e-427b-ba82-9f1249f8a4d6.jpeg)
長押し連射モード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FireMissile : MonoBehaviour
{
public GameObject missilePrefab;
public float missileSpeed;
public AudioClip fireSound;
// ★改良(長押し連射)
private int timeCount;
void Update()
{
// ★改良(長押し連射)
timeCount += 1;
// ★改良(長押し連射)
// 「GetButtonDown」を「GetButton」に変更する(ポイント)
// 「GetButton」は「押している間」という意味
if (Input.GetButton("Fire1"))
{
// ★改良(長押し連射)
// 「5」の部分の数字を変えると「連射の間隔」を変更することができます(ポイント)
// 「%」と「==」の意味合いを復習しましょう。
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);
}
}
}
}
![Daf31217 5966 4b89 b1b1 48f8e520e437](https://codegenius.org/uploads/slide/image/1428/daf31217-5966-4b89-b1b1-48f8e520e437.jpeg)
Danmaku Ⅱ(基礎2/全24回)
他のコースを見る![Aebb815f cb26 4c73 bd34 90e3ed2058b4](https://codegenius.org/uploads/slide/image/1424/aebb815f-cb26-4c73-bd34-90e3ed2058b4.jpeg)
![2ea5c9c4 31e2 4041 bfbb 09915ce82188](https://codegenius.org/uploads/slide/image/1425/2ea5c9c4-31e2-4041-bfbb-09915ce82188.jpeg)
![8c88755f 75f3 4a9f 8a38 0e37457e087b](https://codegenius.org/uploads/slide/image/1426/8c88755f-75f3-4a9f-8a38-0e37457e087b.jpeg)
![1a5454a5 4f2e 427b ba82 9f1249f8a4d6](https://codegenius.org/uploads/slide/image/1427/1a5454a5-4f2e-427b-ba82-9f1249f8a4d6.jpeg)
長押し連射モード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FireMissile : MonoBehaviour
{
public GameObject missilePrefab;
public float missileSpeed;
public AudioClip fireSound;
// ★改良(長押し連射)
private int timeCount;
void Update()
{
// ★改良(長押し連射)
timeCount += 1;
// ★改良(長押し連射)
// 「GetButtonDown」を「GetButton」に変更する(ポイント)
// 「GetButton」は「押している間」という意味
if (Input.GetButton("Fire1"))
{
// ★改良(長押し連射)
// 「5」の部分の数字を変えると「連射の間隔」を変更することができます(ポイント)
// 「%」と「==」の意味合いを復習しましょう。
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);
}
}
}
}
![Daf31217 5966 4b89 b1b1 48f8e520e437](https://codegenius.org/uploads/slide/image/1428/daf31217-5966-4b89-b1b1-48f8e520e437.jpeg)
ボタン長押しで連射できるようにする