滑块不发送信息统一

Slider not sending information unity

所以我正在为我的 FPS 游戏制作一个选项菜单,到目前为止我已经开发了一个音频滑块,使用我尝试为鼠标制作灵敏度滑块的相同想法。貌似是获取了需要的信息发送给游戏对象,但是之后好像没有发送给其他控制FPS摄像头的脚本

//this script controls taking information from a slider in the menu
public float mouseSens;

public void SetSens(float mouseSpeed)
{
    mouseSens = mouseSpeed;
}


//this is the fps camera script
public GameObject mouseInfo; //I tried linking to the game object that holds the information
public float mouseSensitivity; //this is the float that controls mouse sensitivity.


// Start is called before the first frame update
void Start()
{
    //I originally put the float mouseSensitivity = mouseInfo code here but it didn't work.

}

private void Awake()
{
    float mouseSensitivity = mouseInfo.GetComponent<SettingsMenu>().mouseSens; //this is my current try to make it work.
}

如能提供任何帮助,我们将不胜感激。对不起,如果这个 post 格式错误,这是我第一次 post 进入堆栈。 :)

好的,在您的 FPS 相机上,您有一个允许您使用鼠标控制它的脚本。假设该脚本名为 FPSControllerScript(可能不是,但只需将 FPSControllerScript 替换为附加到相机的脚本的实际名称即可)。

在 FPSControllerScript 中,您可能有一个名为 "mouseSensitivity" 或 "mouseSpeed" 的变量。假设它是 mouseSensitivity。将以下方法添加到您的 FPSControllerScript。

public void SetMouseSensitivity(float value) {
    mouseSensitivity = value;
}

那么,附加到您的滑块的脚本应该是:

[SerializeField]
private GameObject _FPSCamera;

public void SetSens(float mouseSpeed)
{
    _FPSCamera.GetComponent<FPSControllerScript>().SetMouseSensitivity(mouseSpeed);
}

在unity编辑器中,将FPSCamera对象拖到_FPSCamera的字段中(当您在右侧的检查器中查看它时,它将是滑块脚本组件中的一个空字段)。

由于您已经可以使用音量控制,我假设您知道如何将 SetSens 方法设置为滑块的 onValueChanged 处理程序。

您可能需要修改滑块的范围或对 mouseSpeed 进行一些额外的计算以确保值合理。