我有一个WP7应用程序,其中包含两个后台线程: 1. 时间计划 2. 按计划时间播放不同的声音样本(可能在同一时间播放几个样本)。
如何在Unity3D引擎中重复这个逻辑?是否有可能?
我有一个WP7应用程序,其中包含两个后台线程: 1. 时间计划 2. 按计划时间播放不同的声音样本(可能在同一时间播放几个样本)。
如何在Unity3D引擎中重复这个逻辑?是否有可能?
Unity不允许您从非主线程访问其API;您不能使用锁定原语来解决此问题。
但是,您可以使用标准的.NET线程API启动不直接与Unity API交互的线程。例如,您可以在另一个线程中计算样本和缓冲区,但主线程必须调用AudioClip.SetData将计算出的样本提交给Unity。
请注意,自Unity 2018.1以来,引入了作业系统(Job System),它允许在后台线程上执行某些类型的计算任务(例如设置变换位置)。随着时间的推移,可以执行的任务正在逐步增加。