【Unity】Toggle(uGUI)の値変更時にイベントを発行させない方法

Unity

はじめに

今日はUnityのUIについて勉強していきます。

UIのToggle(チェックボックス)を使っていてToggleのON/OFF状態を変えると変更イベントであるOnValueChangeがもれなく呼ばれてしまいます。

ただそれだと都合が悪いこともあると思います。

今回は切替イベントを発行させずToggleのON/OFFの状態を変える方法を共有したいと思います。

環境

環境

この記事の情報は次のバージョンで動作確認しています。

* MacOS Monterey (12.1)
* Unity (2021.3.2f1)

SetIsOnWithoutNotify を使いましょう

SetIsOnWithoutNotifyを使うとイベント発行されないです。

[SerializeField]
 private Toggle toggle;

public void Test()
{
    // NG) この方法だとイベント発行されます。
    //toggle.isOn = true; 

    // OK) イベント発行されずにON/OFF切り替えできます
    toggle.SetIsOnWithoutNotify(true); 
}

アプリの仕様に応じてisOnとうまく使い分けていきましょう。