我怎么知道c#代码改变了统一的用户界面?

时间:2018-04-16 09:56:09

标签: c# unity3d

我通过c#代码实现了统一中的许多游戏对象...然后使滚动条值为0以便滚动到最后一个对象...但滚动将我放在中间。因此,在unity和c#代码之间存在延迟。所以在显示所有对象之前滚动条会发生变化。

我怎么知道Unity中的用户界面完全改变了,我现在可以使用一个监听器滚动到最后,或者告诉我你现在可以在用户界面中制作滚动和所有对象的东西?

MakeMessages();
Scrollbar.value = 0;

在所有消息以单位形式出现之前,滚动条值为0,因此它将更改为0.5。

1 个答案:

答案 0 :(得分:1)

您可以使用Scrollbar.onValueChanged检测滚动条值的变化。在OnEnable函数中注册事件,并取消注册OnDisable函数。

public Scrollbar sb;

void OnEnable()
{
    //Register Scrollbar Event
    sb.onValueChanged.AddListener(scollBarChanged);
}

//Called when Scrollbar value changes
private void scollBarChanged(float value)
{
    Debug.Log("Input Changed");
}

void OnDisable()
{
    //Un-Register Scrollbar Event
    sb.onValueChanged.RemoveAllListeners();
}