#1
by 匿名 » 7年前
UnityでSTGを作り始めましたが、弾を遅延なく発射させる方法がイマイチ見つかりません。
一応
https://codegenius.org/open/courses/20/sections/68のコードを参考にしているのですが、これだとボタンを押してから若干の遅延が出ます。
コード:
void Update () {
// ★改良(長押し連射)
timeCount += 1;
// ★改良(長押し連射)
// 「GetButtonDown」を「GetButton」に変更する(ポイント)
if (Input.GetButton ("Fire1")) {
// ★改良(長押し連射)
// 「5」の部分の数字を変えると「連射の間隔」を変更することができます(ポイント)
// 「%」と「==」の意味合いを復習しましょう。
if (timeCount % 5 == 0) {
GameObject missile = Instantiate (missilePrefab, transform.position, Quaternion.identity) as GameObject;
Rigidbody missileRb = missile.GetComponent<Rigidbody> ();
missileRb.AddForce (transform.forward * missileSpeed);
AudioSource.PlayClipAtPoint (fireSound, transform.position);
Destroy(missile, 2.0f);
}
}
}
}
どなたか解決法をご存知の方がいらっしゃいましたらどうかよろしくお願いします。
UnityでSTGを作り始めましたが、弾を遅延なく発射させる方法がイマイチ見つかりません。
一応[url]https://codegenius.org/open/courses/20/sections/68[/url]のコードを参考にしているのですが、これだとボタンを押してから若干の遅延が出ます。
[code]void Update () {
// ★改良(長押し連射)
timeCount += 1;
// ★改良(長押し連射)
// 「GetButtonDown」を「GetButton」に変更する(ポイント)
if (Input.GetButton ("Fire1")) {
// ★改良(長押し連射)
// 「5」の部分の数字を変えると「連射の間隔」を変更することができます(ポイント)
// 「%」と「==」の意味合いを復習しましょう。
if (timeCount % 5 == 0) {
GameObject missile = Instantiate (missilePrefab, transform.position, Quaternion.identity) as GameObject;
Rigidbody missileRb = missile.GetComponent<Rigidbody> ();
missileRb.AddForce (transform.forward * missileSpeed);
AudioSource.PlayClipAtPoint (fireSound, transform.position);
Destroy(missile, 2.0f);
}
}
}
}[/code]
どなたか解決法をご存知の方がいらっしゃいましたらどうかよろしくお願いします。