私はオーバーヘッドシューティングゲームを作っています。プレイヤーが特定のオブジェクトに触れると、その火災率が上昇します。パワーアップが数秒後に消えるようにするにはどうすればいいですか?あなたがアップデート()でそれをタイマーを追加し、ckeckできユニティ - 一時的なパワーアップを行うにはどうすればいいですか?
答えて
public class PlayerPickups : MonoBehaviour {
PlayerHealth playerHealth;
public float RFBoostValue=0.005f;
GameObject player;
void Awake()
{
player = GameObject.FindGameObjectWithTag("Player");
playerHealth = player.GetComponent<PlayerHealth>();
}
private void OnTriggerEnter(Collider other)
{
if (other.tag == "Rapid Fire Pickup")
{
Destroy(other.gameObject);
PlayerShooting.timeBetweenBullets -= RFBoostValue;
}
}
}
float timer = 0;
float seconds = 2;
private void Update() {
timer += Time.deltaTime;
if(timer > seconds) {
timer = 0;
// Do stuff
}
}
または単にパワーアップ値を追加し、 'Invoke(string、float)'にx秒後にもう一度引き算する関数を追加するだけです。 https://docs.unity3d.com/ScriptReference/MonoBehaviour.Invoke.html – yes
私はどのようにそのコードをontriggerenter関数に入れますか? –
@KennethDionisi 'RemovePowerup(){...}'関数を追加し、そこにパワーアップロジックを削除します。 'OnTriggerEnter(Collider other)'では 'Invoke(" RemovePowerup "、2.0f);という行を追加し、2秒後に以前に作成した関数を呼び出します。プレイヤーが死んでいる場合は、 'CancelInvoke(" RemovePowerup ");'(あなたが 'IsInvoking'を呼び出しているかどうかを確認することもできます)を実行してください。あなたはCoroutinesを使うことができます(後で早く彼らに慣れることをお勧めします、あらゆる種類のもののためにかなり便利です)。 – yes
DONDはPlayerShooting.timeBetweenBullets -= RFBoostValue;
が好きな書き込み。あなたのプレイヤーが死亡した場合や何かが起きた場合、データは破損しています。
このようなIAffectまたはsothingのリストをプレーヤーコンポーネントに保存する必要があります。 PlayerAffectControllerは、各エフェクトのライフタイムを制御します。 OnActivateメソッドPlayerShooting.timeBetweenBullets -= RFBoostValue;
でこのコードを実行すると、OnDeactivateのPlayerShooting.timeBetweenBullets += RFBoostValue;
になります。
OnTriggerEnter()自身をPlayerAffectControllerに追加する必要があります –
電源を入れた場所をタッチしたとします。その時点で、あなたのキャラクターやパワーアップマネージャーにコンポーネントを添付します。ゲームの構築方法によって異なります。 Updateメソッドのpowerupコンポーネント内では、電源投入時にuser2953780と同じように時間をカウントしながら、接続されているゲームオブジェクトにパワーアップを適用できます。時間が過ぎると、私はコンポーネントを削除します:
float timer = 0;
float seconds = 2;
private void Update()
{
//Apply powerup effect
//Count time
timer += Time.deltaTime;
if(timer > seconds)
{
//time to remove to powerup component
Destroy(this);
}
}
- 1. <input>フィールドの解析を一時的に行うにはどうすればよいですか?
- 2. デイドリームキーボードをユニティにするにはどうすればいいですか?
- 3. コンパイルタスクの実行をカスタムsbtコマンドで一時的にスキップするにはどうすればよいですか?
- 4. nodejsに一時的な禁止を追加するにはどうすればいいですか?
- 5. データを一時的に保存するにはどうすればよいですか?アンドロイドアプリのショッピングカートなど
- 6. ユニティ - ハイスコアを作成するにはどうすればいいですか?
- 7. サーバーの起動時に "git pull"を自動的に行うにはどうすればいいですか?
- 8. Vimでプラグインを一時的にオフにするにはどうすればいいですか?
- 9. WPFアプリケーションでボタンを一時的に無効にするにはどうすればいいですか?
- 10. セッションタイムアウトログアウトを即時に行うにはどうすればよいですか?
- 11. 一時的に静的ページをオフにするにはどうすればよいですか?
- 12. jQueryで、ハイパーリンクのクリックイベントを一時的に傍受するにはどうすればいいですか?
- 13. DjangoでUploadedFileの一時的な名前を取得するにはどうすればよいですか?
- 14. 一時的なEC2資格情報のタイムアウトを増やすにはどうすればよいですか?
- 15. 一般的な方法で数値を扱うにはどうすればいいですか?
- 16. 一定時間後にメソッド呼び出しを行うにはどうすればよいですか?
- 17. ストーリーボードを一時停止するにはどうすればよいですか?
- 18. C/C++でマクロ展開を一時的に無効にするにはどうすればよいですか?
- 19. アクティブなスリープを行うにはどうすればいいですか?
- 20. vimでカーソルを直感的に動かすにはどうすればいいですか?(行ではなく)
- 21. Rubyで標準エラー出力を一時的にリダイレクトするにはどうすればよいですか?
- 22. 端末MacでPython 3.6を一時的に使用するにはどうすればよいですか?
- 23. PythonのAirflowでは、一定時間後にタスクが実行されないようにするにはどうすればいいですか?
- 24. アプリ購入時にはどうすればいいですか?
- 25. dockerログイン用にwincredプロバイダを一時的に無効にするにはどうすればよいですか?
- 26. (JavaFX)アクションの実行時に一時的なポップアップ(OSD)を表示するにはどうすればいいですか?
- 27. bashスクリプトを一定の時間実行するにはどうすればいいですか?
- 28. SharePoint Webパーツを一時的に無効にするにはどうすればよいですか?
- 29. Laravelにデータベースのパスワードを一時的に保存するにはどうすればよいですか?
- 30. UnityでJavaプラグインを使うにはどうすればいいですか?
私はあなたのどこかにタイマーが必要だと言っていますが、私の知識がどこにあるのがベストではないのか分かりません。 –