/ / Unity - AndroidJavaObject.Call de outro thread - java, c #, android, multithreading, unity3d

Unity - AndroidJavaObject.Call de outro thread - java, c #, android, multithreading, unity3d

Agora eu estou fazendo uma aplicação que enviamensagens do Unity para um dispositivo bluetooth de baixa energia usando um plugin Android Java no meio. Coisas como verificação de conexão e envio de mensagens funcionam bem no thread principal do Unity. No entanto, eu queria ver se eu poderia fazer o envio de mensagens a partir de um thread separado trabalhar como eu envio em torno de 10-20 e aguarde o reconhecimento depois de cada um para enviar o próximo.

Eu sei que o Unity não é seguro, entãofunções do encadeamento são problemáticas, mas isso inclui a classe Android Java Object? Note que este é apenas um exemplo simples para que você possa entender o que estou tentando fazer. Isso funciona sem problema do thread principal.

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

Respostas:

2 para resposta № 1

Sim, você pode usá-lo no thread de segundo plano. Você não pode usar classes derivadas UnityEngine.Object. AndroidJavaObject não herda dele. Você também pode pensar em criar tópicos dentro do plugin nativo que você possui. Assim, dentro do Unity, você só pode acionar métodos que criarão um novo thread na classe java ou reutilizar algum existente ou qualquer outro.