Unity - установить значение слайдера, если оно не перетаскивается? - PullRequest
1 голос
/ 18 апреля 2019

Хорошо, у меня есть слайдер в Unity, процент которого равен текущему проценту минут за день из 1440, общее количество минут за 24 часа.

 currentMinute = System.DateTime.Now.Minute + (System.DateTime.Now.Hour * 60);

            barPercentage = currentMinute / 1440;

Это здорово, но я не хочу устанавливать значение slider.value в этот процент, если ползунок перетаскивается.Я перепробовал все, включая добавление триггеров событий в дескриптор, а затем запуск bool вроде этого:

 public void SliderSelected()
    {

        sliderSelect = true;
    }
    public void SliderDeselect()
    {
        sliderSelect = false;
    }
 if(!sliderSelect)
        {
           slider.value = gameController.barPercentage;
        } 

Проблема в том, что я не могу перетащить свой ползунок.Слайдер работает, если я удаляю это:

slider.value = gameController.barPercentage;

Но bool также работает - когда я держу нажатой за ручку, bool имеет значение true и false, когда я отпускаю, так как я использую PointerDown и PointerUp.

Как я могу это сделать?

1 Ответ

0 голосов
/ 18 апреля 2019

Вроде бы нормально работает со следующим скриптом и настройками:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Slid : MonoBehaviour
{
    Slider slide;
    bool sliderSelect = false;

// Start is called before the first frame update
    void Start()
    {
        slide = GetComponent<Slider>();
    }

    public void SliderSelected()
    {

        sliderSelect = true;
    }

    public void SliderDeselect()
    {
        sliderSelect = false;
    }

    public void Update()
    {
        float currentMinute = System.DateTime.Now.Minute + (System.DateTime.Now.Hour * 60);

        float barPercentage = currentMinute / 1440;

        if (!sliderSelect)
        {
            slide.value = barPercentage;
        }
    }
}

Инспектор единства вид слайдера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...