(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

無限ループを止めるアセット「Panic Button」【Unity】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2017.2.0f3


はじめに

Unityでは無限ループに陥ってしまった時にそれを止める術がありません。

頻繁に起こる事ではないとは言え、やっぱり無限ループが起きても停止出来るようにしたいですよね?

今回はそんな悩みを解消するアセット、Panic Buttonのご紹介です!





Panic Button

使い方は簡単、Asset Storeからインストールし、無限ループが発生したらShift + Escを押すだけ。


f:id:kan_kikuchi:20171111204520j:plain
f:id:kan_kikuchi:20171111204534j:plain


試しに無限ループを故意に起こして止めてみると、

以下のような感じでしっかり停止され、ついでにエラーログも出ます。

private void Start () {
  //無限ループ!!
  while (true) {}
}

f:id:kan_kikuchi:20171111205419j:plain



余談ですが、実際に使うライブラリの他に元のソースコードも付いてたりします。


f:id:kan_kikuchi:20171111204839j:plain



------------追記

注意点

実際のプロジェクトでPanic Buttonを使ってみたんですが、

ビルド時にたまにエラーが出るようになりました(出ない時もある)。


なので、Panic Buttonのディレクトリを削除した所、

今度はエディタ上でも実行時にエラーが出るようになり、もちろんビルドも出来ません。

System.IO.FileNotFoundException:Could not load file or assembly Dezgo_PanicButton_merged

f:id:kan_kikuchi:20171114122509j:plain



これの原因は、Panic Buttonが他のdllファイルをプロテクトしている事でした。

(最初のビルド失敗も恐らくこれが原因)


プロテクトはPanic Buttonインストール時に出る以下のポップアップでNoを選べば無効になります。


f:id:kan_kikuchi:20171114132316j:plain


また一度プロテクトする設定にしても、

Edit -> Panic Button Setting の Protect all DLLsからチェックを外せば無効に出来ます。


f:id:kan_kikuchi:20171114132355j:plain
f:id:kan_kikuchi:20171114132404j:plain


------------追記おわり