Unity3d 在异步方法中加载对象上的材质

Unity3d 在异步方法中加载对象上的材质,unity3d,Unity3d,我想用线程/异步在某些对象上加载一些材质,但我现在尝试的东西不起作用: Thread d = new Thread(new ThreadStart(loadMethod)); d.Start(); 这些材料一点也装不上 如何在不影响应用程序流程的情况下在对象上加载材质?现在它有点冻结了1-2秒。如果可以,我会很惊讶,你正在破坏Unity的线程模型,而他们的API不是线程安全的。您不能保证在更改材质时渲染器不会将数据加载到OpenGL/DirectX上下文中。正如Jerdak所说,只要与Unit

我想用线程/异步在某些对象上加载一些材质,但我现在尝试的东西不起作用:

Thread d = new Thread(new ThreadStart(loadMethod));
d.Start();
这些材料一点也装不上


如何在不影响应用程序流程的情况下在对象上加载材质?现在它有点冻结了1-2秒。

如果可以,我会很惊讶,你正在破坏Unity的线程模型,而他们的API不是线程安全的。您不能保证在更改材质时渲染器不会将数据加载到OpenGL/DirectX上下文中。正如Jerdak所说,只要与Unity API交互,渲染器就不会工作。当然,您可以使用线程进行不调用任何Unity函数的计算。听起来你在使用巨大的未压缩纹理。你应该检查纹理的设置,并确保你真的需要它们那么大。此外,如果你加载了许多纹理,你可以在一个协同程序中完成,并且每帧只加载几个。