Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我怎么知道unity中的用户界面被c代码改变了?_C#_Unity3d - Fatal编程技术网

C# 我怎么知道unity中的用户界面被c代码改变了?

C# 我怎么知道unity中的用户界面被c代码改变了?,c#,unity3d,C#,Unity3d,我正在用c代码实例化unity中的许多游戏对象。。。然后使滚动条值为0,以滚动到最后一个对象…但滚动是降落在中间的我。正因为如此,unity和c#代码之间存在延迟。因此,在显示所有对象之前,滚动条会发生变化 我怎么知道unity中的用户界面完全改变了,我现在可以使用监听器滚动到最后,或者告诉我现在可以进行滚动,并且用户界面中的所有对象都准备好了 MakeMessages(); Scrollbar.value = 0; 在所有消息以统一形式出现之前,滚动条的值为0,因此它将更改为0.5。您可以通

我正在用c代码实例化unity中的许多游戏对象。。。然后使滚动条值为0,以滚动到最后一个对象…但滚动是降落在中间的我。正因为如此,unity和c#代码之间存在延迟。因此,在显示所有对象之前,滚动条会发生变化

我怎么知道unity中的用户界面完全改变了,我现在可以使用监听器滚动到最后,或者告诉我现在可以进行滚动,并且用户界面中的所有对象都准备好了

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,以便位于列表底部