さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

【Unity】onValueChangedを発火させずにSliderの値を変える

 Unity2019.1でSetValueWithoutNotifyメソッドが追加された。

slider.SetValueWithoutNotify(value);

// normalizedValueには対応してないのでこう書く
slider.SetValueWithoutNotify(Mathf.Lerp(slider.minValue, slider.maxValue, normalizedValue));

// toggleにも似たようなのがある
toggle.SetIsOnWithoutNotify(true);

以前は

 こう書くととりあえず動く

var tmp = slider.onValueChanged;
slider.onValueChanged = new Slider.SliderEvent();
slider.normalizedValue = value;
slider.onValueChanged = tmp;

コード

bitbucket.org