unity3d 通过滑块加减数字

vhmi4jdf  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(183)

例如,我的健康指数是50。
我需要使用滑块添加或减去健康。
但我的编辑滑块编号是0 - 15
那么我怎样通过slider number来加减这个health number呢?
当我滑动右(0到15),健康数字增加这滑动结束数字.如果我滑动到10是50 + 10
滑块向左(15到0),健康值返回,0表示没有变化。

bqjvbblv

bqjvbblv1#

假设您的健康数字范围为0-100,您可以使用以下公式将滑块值sliderValMap到健康值healthVal
healthVal = (sliderVal / 15) * 100 // 100 is the max health
例如,如果滑块值为7,则对应的运行状况值为:
healthVal = (7 / 15) * 100 = 46.67
然后,您可以使用此计算出的健康值来增加或减少您的当前健康值,具体取决于滑块的方向。
例如,如果滑块用于增加健康状况,您可以将计算出的健康状况值添加到您的当前健康状况数字:
newHealthNum = currentHealthNum + healthVal
如果滑块用于减少健康值,您可以从当前健康值中减去计算出的健康值:
newHealthNum = currentHealthNum - healthVal
请注意,如果您的健康状况数值为整数值,则可能需要将计算出的健康状况值四舍五入为整数。
下面是一个更详细的示例:

public Slider healthSlider;
private float previousSliderValue;

private void Update()
{
    UpdateHealth();
}

public void UpdateHealth() {
    float currentSliderValue = healthSlider.value;

    // Determine direction of slider
    float sliderDirection = currentSliderValue - previousSliderValue;
    if (sliderDirection > 0) {
        // Slider is moving in positive direction (adding health)
        float healthToAdd = (sliderDirection / 15) * 100;
        AddHealth((int)healthToAdd); // Assuming health is an 
integer value
    } else if (sliderDirection < 0) {
        // Slider is moving in negative direction (subtracting 
health)
        float healthToSubtract = (-sliderDirection / 15) * 100;
        SubtractHealth((int)healthToSubtract);
    }

    // Store current slider value for next update
    previousSliderValue = currentSliderValue;
}

public void AddHealth(int healthToAdd) {
    // Add health to current health number
    // ...
}

public void SubtractHealth(int healthToSubtract) {
    // Subtract health from current health number
    // ...
}

相关问题