【问题标题】:Slider not sending information unity滑块不统一发送信息
【发布时间】:2020-06-06 04:21:08
【问题描述】:

所以我正在为我的 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.
}

对此的任何帮助将不胜感激。如果这篇文章格式错误,很抱歉,这是我第一次在堆栈上发帖。 :)

【问题讨论】:

    标签: c# unity3d slider mouse


    【解决方案1】:

    好的,在您的 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);
    }
    

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

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

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

    【讨论】:

    • 谢谢!我测试了代码,它可以工作。我遇到的唯一问题是,由于我正在制作的游戏是多人游戏,我必须实例化它并且它变成一个克隆。我确信我可以自己解决这个问题。很抱歉花了这么长时间回复并标记为工作。生活有点忙!再次感谢一堆!
    • 不用担心。祝你游戏好运。
    猜你喜欢
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多