首页 > 解决方案 > Unity - 如果没有被拖动,则设置滑块值?

问题描述

好吧,我在 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 也在工作 - 当我按住手柄时,当我使用 PointerDown 和 PointerUp 释放时,bool 是真假。

我怎样才能做到这一点?

标签: c#user-interfaceunity3d

解决方案


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

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

滑块的 Unity 检查器视图


推荐阅读