Astuce : Execute In Main Thread
Publié : 13 Août 2019 19:17
Hello,
J'ai besoin comme souvent d'utiliser un PlayerPrefs suite à un call réseau...
Et bien sur, ça ne marche pas comme on n'est pas sur le main thread. J'ai regardé sur le net mais les solutions ne me plaisent pas trop alors, j'ai fait la mienne :
Je vous la partage, ça pourrait vous être utile :
Appel réseau... puis
Voici le code de Game.cs :
J'ai besoin comme souvent d'utiliser un PlayerPrefs suite à un call réseau...
Et bien sur, ça ne marche pas comme on n'est pas sur le main thread. J'ai regardé sur le net mais les solutions ne me plaisent pas trop alors, j'ai fait la mienne :
Je vous la partage, ça pourrait vous être utile :
Appel réseau... puis
Code : Tout sélectionner
void MethodAfterNetworkCall()
{
int coucou = 32;
Game.ExecuteInMainThread(() =>
{
// Execute ce code sur le mainThread
PlayerPrefs.SetInt("coucou", coucou);
});
...
}
Code : Tout sélectionner
using System.Collections.Generic;
public delegate void DelegateVoid();
public class Game
{
static Queue<DelegateVoid> actions = new Queue<DelegateVoid>();
public static void ExecuteInMainThread(DelegateVoid action)
{
actions.Enqueue(action);
}
private void Update()
{
if (actions.Count > 0)
{
actions.Dequeue().Invoke();
}
}
}