ボタンを一時的に無効にする


画面上にいろいろのボタンがあるのですが、一つの処理中に他のボタンを使用すると、  
フリーズやバグの要因になるのではないかと思いました。

なので、処理中は他のボタンをタッチできないようにしたいのですが

false; などをそれぞれのボタンに入れて処理中はイベントの無効にするように設定するのは  
ボタンが多い場合時間がかかりますので、  
その他のボタンを一時的に無効にする方法はありますでしょうか




質問者さんが意図している機能に対して最適な処理であるかどうかは何とも言えませんが、メッセージフィルタを使って、該当するコントロールに対するメッセージをフィルタリングしてしまうという方法が考えられます。

IMessageFilterインターフェースを実装したクラスをフォームに登録しておけばメッセージディスパッチ前にこのクラスのPreFilterMessageメソッドに処理が渡るので、そこで動作を止めたいボタンに対するメッセージを操作することができます。

ただUnityを知らないので、この方法が使えるか何とも言えません。IMessageFilterインターフェースについて調べてみてください。

ただ、質問に書かれている内容のみで判断すると、ボタンコントロールのプロパティをfalseにする処理をボタン数分行う方が直感的に判りやすく、コードを書くコストも大してかからず、不具合も紛れ込みにくいのではないかと思います(実行時間もそんなにかかるとは思えないです……)。

