Unity-如果不拖动,设置滑块值?

时间:2019-04-18 03:33:19

标签: c# user-interface unity3d

好的,我在Unity中有一个滑块,其百分比等于1440中一天中当前分钟的百分比,即24小时的总分钟数。

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

            barPercentage = currentMinute / 1440;

这很好,但是如果拖动滑块,我不想将slider.value设置为此百分比。香港专业教育学院尝试了一切,包括将事件触发器添加到句柄,然后像这样触发布尔:

 public void SliderSelected()
    {

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

问题是,因此无法拖动滑块。如果我删除此滑块,则可以使用:

slider.value = gameController.barPercentage;

但是bool也在起作用-当我按住手柄时,由于Im使用PointerDown和PointerUp释放时,布尔值为true和false。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用以下脚本和设置似乎可以正常工作:

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;
        }
    }
}

滑块的统一检查器视图