質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

573閲覧

updateの中に時間差で起こる処理を追加

Aya7

総合スコア14

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/06/06 16:24

前提・実現したいこと

unity 初めてまだ少しの初心者です。

void Update()の中に時間を遅らせてから処理をしたいものがあります。

(接地判定がなくなったらゲームオーバー画面に行くという処理)

該当のソースコード

void Update() { //ifを何秒かしてから判定させたい。(ここに時間差のコードを書きたい) if (isGround == false)//設置判定がないことを確認する。 { Debug.Log("設置判定がないよ!"); SceneManager.LoadScene("GameOver"); } }

試したこと

様々なサイトで調べコルーチンや、Invokeのことについてはわかったのですが、updateの中でやる処理はわかりませんでした。

補足情報(FW/ツールのバージョンなど)

Unity 2020.3.4f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

質問内容では複数の解釈ができてしまうので、両方記載します。
なお、動作確認していないので、上手くいかなかったら適宜修正してください。
また一例ですので、Time.deltaTimeやコルーチンを使った方法もあります。

何秒かしてから、設置判定がないことを確認し処理

C#

1 float startTime; //開始時間 2 3 void Start() 4 { 5 startTime = Time.time; 6 } 7 8 void Update() 9 { 10 //ifを10秒してから判定する 11 if (Time.time - startTime >= 10f) 12 { 13 if (isGround == false)//設置判定がないことを確認する。 14 { 15 Debug.Log("設置判定がないよ!"); 16 SceneManager.LoadScene("GameOver"); 17 } 18 } 19 }

設置判定がない状態で何秒かしてから処理

C#

1 float notGroundStartTime; //設置していない状態の開始時間 2 bool prevIsGround = true; //前のフレームのisGround 3 4 void Update() 5 { 6 if (isGround)//設置していたら 7 { 8 prevIsGround = true; 9 } 10 else 11 { 12 if (prevIsGround)//前のフレームで設置していれば 13 { 14 notGroundStartTime = Time.time; 15 } 16 17 if (Time.time - notGroundStartTime >= 10f) //10秒経過しているか 18 { 19 Debug.Log("設置判定がないよ!"); 20 SceneManager.LoadScene("GameOver"); 21 } 22 23 prevIsGround = false; 24 } 25 }

投稿2021/06/07 00:20

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2021/06/07 00:28

ただ、マリオみたいに「ステージ外まで落下したらゲームオーバー」ということなのであれば、落下時間ではなく、「座標の位置を取得してステージ外か判定する」とか「ステージの底に当たり判定を付ける」としたほうがいいかもしれません。
Aya7

2021/06/07 01:35

複数の回答ありがとうございます。詳細な記載がなくて申し訳ございません。どちらも様々な場所で利用させていただきます。
guest

0

接地判定がなくなったらその時点の現在時を保存しといて、
それ以降の実行で経過時間過ぎたかチェック、過ぎてたら実行するようにすればよろしい

投稿2021/06/06 22:08

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問