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

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

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

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

Q&A

解決済

1回答

2935閲覧

infinite loop detectedとエラー表示されwhileの処理をしてくれません

dedede914

総合スコア63

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

0グッド

0クリップ

投稿2021/04/30 20:25

UE4のblueprintについてです
下のようにwhile loopを使ってノードをくみました
プレイヤーが扉の近くに来た時にPRESS E という文字を表示させそれをふわふわ上下に動かそうとしました
このときwhile loopの条件が常にtrueが返るだろうから処理しませんってエラーですよね!?
文字のhiddenがfalseつまり表示されているとき、かつ、このループが10回以下のとき、
のみwhileにtrueを返しているつもりなんですが間違っていますかね
すみませんよろしくお願いします

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

Infinite Loop Detectedは1フレーム中に規定回数以上ループが走った場合に無限ループだと判断して処理中断したときに表示されるエラーです。
(コード的にこれは無限ループだ!って推測をしているわけではありません)
つまり、while以降の処理は実際に処理されています。

ちなみに無限ループと判断するまでのループ回数はプロジェクト設定→ループイテレーションの最大回数から設定できます。(初期値は100万回です)

なぜ無限ループになってしまっているかですが、
Countが10以上になったときに処理を抜けるように記述されてます。
そしてそのCountの加算処理はタイムラインのUpdate内部で処理が行われています。
while loopはPlayにつながっており何回Playを呼び出してもその回数Updateが呼び出されるわけではなく、
次のフレームに行くまでUpdateの呼び出しは保留されるので一向にCountが加算されず、
けどwhile loopによって次フレームにもいかず無限ループになってしまっています。

解決方法はいくつかあり、また実際どのような動きをしたいかによりますが
ずっとふわふわTimelineに沿って動かしたいのであれば

特にwhile loopなどは使わずにtimelineをループに設定して、状況に合わせて外から開始と停止を一度呼び出すというのはいかがでしょうか

投稿2021/05/01 16:08

編集2021/05/01 16:10
MMashiro

総合スコア2380

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問