Unity2018でもInspectorウィンドウでSliderをいじると警告が……
Sliderを使っているとき、InspectorからValueを変更することもあります。というかSliderを使うなら値の設定はほぼ確実にすると思うんだけど、そのとき大量に以下の警告が出ます。
————————————-
SendMessage cannot be called during Awake, CheckConsistency, or OnValidate
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
————————————-
以前UnityのIssuTrackerで確認したところ、5.5で治ったけど5.6で再発するようになった、なんて書かれていました。
このブログでもチュートリアルの中でこのメッセージに行き当たったので、実は取り上げていたんですよね。
当時のバージョンはUnity2017.4だったので、それから直ってるかなーなんて期待もしましたが、Unity2018.2でも変わらず。
ぐぬぬ……。
なお、コンソールが埋め尽くされる以外の実害はなさそうなので、無視しても良さそうです。
環境
macOS 10.13 High Sierra
Unity2018.2.2f1
再現方法
簡単に再現方法を。
[UI] -> [Slider]を選択し、シーンにSliderを追加します。
追加されたSliderを選択して、InspectorウィンドウでValueを変更します。適当に左右に動かせばOKです。
なんということでしょう。大量に警告が出力されるではないですか。
警告は全て以下のメッセージです。
————————————-
SendMessage cannot be called during Awake, CheckConsistency, or OnValidate
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
————————————-
動かすたびに表示されるので、地味に気になります。右の数値フィールドでダイレクトに値を指定すれば出てこないので、一応の回避は可能。
他の事例
Issue Trackerで確認した他の事例は以下の通り。
ゲームプレイ中に出力される
Unity2017.2でFixedになっているけど、この記事のメッセージと同じものがまだ出ているみたい。
このIssueに投稿されたコメントを見るに、2018.1でも起きている様子。
Sliderの向きを変えると出力される
こちらはUnity2018.1で投稿されたもの。
SliderやScrollbarのDirectionを変更するとメッセージが出力されます。
Unity2018.2で実際にやってみたけど同じようにメッセージが出て来ました。でも出力元がちょっと異なるのね。
————————————-
SendMessage cannot be called during Awake, CheckConsistency, or OnValidate
UnityEditor.PopupCallbackInfo:SetEnumValueDelegate(Object, String[], Int32)
————————————-
結局どうすべきか
実害がないので、メッセージは無視して良いと思います。UnityEngineの内部から出てるっぽいのでいじれないですし。
どうしても気になるなら以下の行動を避けると吉。
- SliderのValueをGUIのスライダーを使って変更する
- SliderのDirectionを変更する
- ScrollbarのValueまたはSizeを変更する
- ScrollbarのDirectionを変更する
この辺を避けつつ、Unityさんが直してくれるのを祈るのです。
ゲーム開発の攻略チャートを作りました!
-
前の記事
過去バージョンのプロジェクトをUnity2018で開いたらエラーが出た件 2018.08.03
-
次の記事
便利なAddressableAssetだけど、fbxのAnimationタブでエラーが出る 2018.08.15
[…] Unity2018でもInspectorウィンドウでSliderをいじると警告が…… […]