お世話になっております。
現在エディタのPlayで、PIE/スタンドアローンとは別に、Simulateで起動させたときに動作を変更したいものがあり、判定方法を探しております。
しかし、名前的に判定で使えそうな GEditor->bIsSimulatingInEditor
を独自のGameModeのBeginPlayで判定したのですが、falseが返ってきてしまいました。
GameModeのBeginPlayのタイミングで判定を取得したいのですが、どうすれば正しく取得できますでしょうか?
ご回答のほどよろしくお願いします。
まずは、Simulationかどうかによってゲームの動作を変えるのはオススメしません。なぜと言いますと、Simulationで正しく動作しますが、本番のゲームで正しく動作しないかその逆のバグを招くからです。
後で追いかけにくいバグが発生するかもしれないことを理解してもまだやりたいですと、Simulationの場合はPawnがSpawnされないので、簡単にそれを検出出来ると思います(遅い方法だとGetAllActorsOfClass(APawn)などがあります)。
よろしくお願いします。
ご回答ありがとう御座います。
Simulationで判定するのが良くないとのこと了解いたしました。今後実装する指針として気をつけます。
Simulationでチェックしたいときには、レベルに紐づくGameModeクラス自体を変更するなどをして対処できそうなので、そちらで対応するようにしたいと思います。