You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

滑块值更改时Mouse Sensitivity未更新问题求助

解决滑块值更改时Int类型Sensitivity不更新的问题

你的代码只实现了把Sensitivity的值同步到滑块,完全没处理滑块值变化时反向更新Sensitivity的逻辑,这就是问题核心。

修正步骤:

  1. 添加滑块值变化的回调方法
    新增一个方法,接收滑块的数值变化,把float类型的滑块值转为int后赋值给Sensitivity:

    public void OnSliderValueChanged(float sliderValue)
    {
        Sensitivity = Mathf.RoundToInt(sliderValue);
    }
    
  2. 初始化加载保存的灵敏度
    在Start方法里从PlayerPrefs读取之前保存的灵敏度,同时同步到滑块:

    private void Start()
    {
        // 读取保存的值,没有的话用默认值(比如5)
        Sensitivity = PlayerPrefs.GetInt("sensitivity", 5);
        SensitivitySlider.value = Sensitivity;
    }
    
  3. 优化PlayerPrefs的保存逻辑
    不要在Update里频繁调用PlayerPrefs.SetInt,这会浪费性能。建议用属性封装Sensitivity,在值变化时再保存:

    private int _sensitivity;
    public int Sensitivity
    {
        get => _sensitivity;
        set
        {
            _sensitivity = value;
            PlayerPrefs.SetInt("sensitivity", _sensitivity);
            PlayerPrefs.Save(); // 确保修改立即保存
        }
    }
    

完整修正代码:

using UnityEngine;
using UnityEngine.UI;

public class SensitivityManager : MonoBehaviour
{
    private int _sensitivity;
    public int Sensitivity
    {
        get => _sensitivity;
        set
        {
            _sensitivity = value;
            PlayerPrefs.SetInt("sensitivity", _sensitivity);
            PlayerPrefs.Save();
        }
    }

    public Slider SensitivitySlider;

    private void Start()
    {
        Sensitivity = PlayerPrefs.GetInt("sensitivity", 5);
        SensitivitySlider.value = Sensitivity;
    }

    public void OnSliderValueChanged(float sliderValue)
    {
        Sensitivity = Mathf.RoundToInt(sliderValue);
    }
}

编辑器操作补充:

在Unity编辑器中,选中挂载此脚本的物体:

  • 把场景中的Slider拖到脚本的SensitivitySlider字段上
  • 选中Slider组件,找到On Value Changed事件,点击+号
  • 将脚本所在物体拖到事件的对象框中,然后选择SensitivityManager -> OnSliderValueChanged(float)

内容的提问来源于stack exchange,提问作者PugDance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:36:20