Unity3D Slider onValueChanged仅发送0(或其他定义的值)

时间:2015-09-20 14:15:00

标签: unity3d unity3d-gui unity3d-editor

我试图将onValueChanged事件附加到我的GUI Slider,但由于某种原因,它给了我一个强制选项来输入一个值(它是"中的第四个框; On价值变化(单一)"部分)。然后它只发送前面提到的值,而不是滑块的实际值。

enter image description here

该活动的代码如下:

public void ChangeWindDirection(float value)
{
    Debug.Log("New wind direction: " + value);
}

我尝试重启Unity和Visual Studio 2013都无济于事。现在它甚至会为我尝试创建的每个新事件添加一个值。

3 个答案:

答案 0 :(得分:27)

这是我找到的最佳答案:

(由Jesper发表评论)

确保从检查器的OnValueChanged下拉列表中选择了Dynamic float

click here for the image

答案 1 :(得分:23)

你可以这样做

public void ChangeWindDirection(Slider slider)
{
    Debug.Log("New wind direction: " + slider.value);
}

然后分配滑块: enter image description here

这样你可以得到滑块值,或滑块有的其他东西:-) 希望这是你想要的: - )

答案 2 :(得分:0)

我有同样的问题,旧的滑块绑定得很好,但是新的滑块显示了你放置值的占位符。甚至以前的滑块,如果我触摸它们并将其更改为完全相同的方法,它们现在显示值占位符并始终发送零。我在一小时前添加了一个滑块就好了,但是现在对滑块OnChanged的任何更改都会显示占位符值。我确实在那段时间向目标类添加了一个静态字段,不确定是否是原因。