ボタン長押しで連射できるようにする
長押し連射モード
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);
}
}
}
}
Danmaku Ⅱ(基礎2/全24回)
他のコースを見る長押し連射モード
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);
}
}
}
}
ボタン長押しで連射できるようにする