C# 我怎么知道unity中的用户界面被c代码改变了?
我正在用c代码实例化unity中的许多游戏对象。。。然后使滚动条值为0,以滚动到最后一个对象…但滚动是降落在中间的我。正因为如此,unity和c#代码之间存在延迟。因此,在显示所有对象之前,滚动条会发生变化 我怎么知道unity中的用户界面完全改变了,我现在可以使用监听器滚动到最后,或者告诉我现在可以进行滚动,并且用户界面中的所有对象都准备好了C# 我怎么知道unity中的用户界面被c代码改变了?,c#,unity3d,C#,Unity3d,我正在用c代码实例化unity中的许多游戏对象。。。然后使滚动条值为0,以滚动到最后一个对象…但滚动是降落在中间的我。正因为如此,unity和c#代码之间存在延迟。因此,在显示所有对象之前,滚动条会发生变化 我怎么知道unity中的用户界面完全改变了,我现在可以使用监听器滚动到最后,或者告诉我现在可以进行滚动,并且用户界面中的所有对象都准备好了 MakeMessages(); Scrollbar.value = 0; 在所有消息以统一形式出现之前,滚动条的值为0,因此它将更改为0.5。您可以通
MakeMessages();
Scrollbar.value = 0;
在所有消息以统一形式出现之前,滚动条的值为0,因此它将更改为0.5。您可以通过检测滚动条值的变化。在
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();
}
谢谢…它工作了,但是现在卷轴拒绝上升…我如何解决这个问题?我回答中的代码不能阻止卷轴工作或滚动。这个问题似乎无关。确保场景中有EventSystem。如果仍然不起作用,请创建新问题,并在itI中描述确切的问题。我认为问题是相关的。每当我拉动滚动到顶部时,就会调用侦听器,并将滚动值设置为0。所以我不能再上升了,但是我的答案中的代码根本没有设置滚动值。这是你自己的修改。我以为你想检测滚动值何时更改?我想在滚动值更改时将滚动设置为0,以便位于列表底部