Страница 1 из 1

Slider OnValueChanged

СообщениеДобавлено: 09 янв 2019, 22:07
Urion
Есть Slider, есть функция для него.
По идее функция должна вызываться когда я переместил ползунок слайдера в ручную и не вызываться когда я просто меняю значение через скрипт,
но если вешать функцию на OnValueChanged в инспекторе, то она вызывается в обоих случаях.
Как сделать что бы функция вызывалась только тогда, когда я таскаю слайдер в ручную?

Re: Slider OnValueChanged

СообщениеДобавлено: 09 янв 2019, 22:49
1max1
На ум приходит только костыль)

Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;

class test : MonoBehaviour
{
    public Slider slider;

    bool _break;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            _break = true;
            slider.value += 0.01f;          
        }
    }

    public void Change(float value)
    {
        if (_break)
        {
            _break = false;
            return;
        }

        print(value);
    }
}

Re: Slider OnValueChanged

СообщениеДобавлено: 11 янв 2019, 15:15
AngryCat
1max1 писал(а):На ум приходит только костыль)

Синтаксис:
Используется csharp
using UnityEngine;
using UnityEngine.UI;

class test : MonoBehaviour
{
    public Slider slider;

    bool _break;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            _break = true;
            slider.value += 0.01f;          
        }
    }

    public void Change(float value)
    {
        if (_break)
        {
            _break = false;
            return;
        }

        print(value);
    }
}

Не самый умный способ, учитывая тот факт, что я могу просто нажать в любую точку экрана и этот метод сработает :/

Re: Slider OnValueChanged

СообщениеДобавлено: 11 янв 2019, 15:17
1max1
GetMouseButtonDown() я просто для примера добавил.

Re: Slider OnValueChanged

СообщениеДобавлено: 11 янв 2019, 17:56
Cr0c
Не менять слайдер кодом.

Re: Slider OnValueChanged

СообщениеДобавлено: 22 янв 2019, 20:25
AngryCat
Я бы сделал проще. Когда меняешь value скриптом делаешь в коде булевую пометочку, что меняешь скриптом. :-bd