2017-03-17 213 views
0

现在我正在制作一个应用程序,使用Android Java插件将消息从Unity发送到蓝牙低功耗设备。像扫描连接和发送消息一样,Unity主线程可以正常工作。但是我想看看是否可以从一个单独的线程发送消息,因为我发送了大约10-20个消息,并在发送下一个消息后等待确认。Unity - 来自另一个线程的AndroidJavaObject.Call

我知道Unity不是线程安全的,因此从线程调用某些函数是有问题的,但是包含Android Java Object类吗?请注意,这只是一个简单的例子,因此您可以理解我正在尝试做的事情。这在主线程中没有问题。

new System.Threading.Thread(() => 
     { 
      androidJavaObject.Call("MethodName", message); 
     } 
     }).Start(); 

回答

2

是的,你可以在后台线程中使用它。你不能使用UnityEngine.Object派生类。 AndroidJavaObject不会从它继承。你也可以考虑在你的原生插件中创建线程。所以在Unity里面,你只能触发在java类中创建新线程或者重用一些现有的或者其他的方法。