まず、スクリプトには新しくなっているので、スクリプトにいくつかの欠陥が存在する可能性があります。ユニティパワーアップが意図したとおりに動作していない
基本的には、電源を入れるスクリプトを作っていますが、ショットやプレーヤーがパワーアップコインに触れると、火災率は上昇しますが、5秒後には通常の火災レートに戻りません...原因が何であるか分かりません。アドバイスが参考になるでしょう!
using UnityEngine;
using System.Collections;
public class FireRatePowerUp : MonoBehaviour {
private bool isPowerUp = false;
private float powerUpTime = 5.0f;
private PlayerShoot playerShoot;
private void Start()
{
playerShoot = PlayerShoot.FindObjectOfType<PlayerShoot>();
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Player" || collision.gameObject.tag == "Projectile")
{
StartCoroutine(PowerUpTime());
isPowerUp = true;
Destroy(gameObject);
if (collision.gameObject.tag == "Projectile")
{
Destroy(collision.gameObject);
}
}
}
IEnumerator PowerUpTime()
{
playerShoot.fireRate -= 0.13f;
yield return new WaitForSeconds(powerUpTime);
playerShoot.fireRate += 0.13f;
}
}
(https://stackoverflow.com/questions/40792548/do- [Unity3Dでコルーチンを使用する方法がわからない]の可能性のある重複使い方が分からないコルーチンインユニティ3d) – Serlite
ありがとう、私は今問題が何であるか知っています! – Nick