invokerepeating meathod不允许其他脚本以单位3D运行

时间:2017-10-29 10:49:37

标签: unity3d

两个脚本附加了我的一个场景,在一个脚本中我使用方法调用重复调用它时,我的第二个附带按钮的脚本不起作用。

void Start()
{
    currentImage = 0;
    if (thread == null) {
        thread = new Thread (new ThreadStart (CallChangeImage));
        thread.IsBackground = true;
        thread.Start ();
    }
}

public void CallChangeImage()
{
    InvokeRepeating("ChangeImage", 0.1f, frameRate);
}

private void ChangeImage()
{
    if (currentImage == frames.Length - 1)
    {
        CancelInvoke("ChangeImage");
        Destroy(explosion);
    }
    currentImage += 1;
    explosion.sprite = frames[currentImage];
}

当我在其他线程中使用此 invokerepeating 时,它给出了错误,此方法仅在主线程中调用。 在调用这个场景之后,我没有回到任何其他场景,因为我的所有代码都会被卡住。 帮我解决这个问题!!

1 个答案:

答案 0 :(得分:0)

这是在不使用线程的情况下执行此操作的正确方法

void Start()
{
    currentImage = 0;
    InvokeRepeating("ChangeImage", 0.1f, frameRate);
}

private void ChangeImage()
{

        if (currentImage == frames.Length - 1)
        {
            CancelInvoke("ChangeImage");
            Destroy(explosion);
        }
        currentImage += 1;
        explosion.sprite = frames[currentImage];

}