Utilisez une API Unity à partir d'autres threads ou des fonctions d'appel dans le thread principal
Solution
Appelez l'unité APIImplémentez les étapes suivantes:
Créez un statiqueappelé
pour stocker l'opération qui doit être effectuée dans le thread principal.actionQueuesUpdateFunc
) et effectuer ces opérations. List<Action>
actionQueuesUpdateFunc
actionCopiedQueueUpdateFunc
noActionQueueToExecuteUpdateFunc
Update
La fonction pour appeler la fonction à partir d'un thread séparé: ou, passez la fonction comme un paramètre:
Corporation opérationnelle dans le thread principal
<code class="language-csharp">UnityThread.executeInUpdate(() => { // 在主线程中执行的代码 });</code>
comment utiliser
<code class="language-csharp">Action rot = Rotate; UnityThread.executeInUpdate(rot); void Rotate() { // 函数代码 }</code>
Initialiser dans :
<code class="language-csharp">UnityThread.executeCoroutine(myCoroutine()); IEnumerator myCoroutine() { // 协程代码 }</code>
Awake()
Effectuer dans : UnityThread
<code class="language-csharp">UnityThread.initUnityThread();</code>
Update
<code class="language-csharp">UnityThread.executeInUpdate(() => { // Update 代码 });</code>
Update
<code class="language-csharp">Action rot = Rotate; UnityThread.executeInUpdate(rot); void Rotate() { // 方法代码 }</code>
LateUpdate
Description supplémentaire
<code class="language-csharp">UnityThread.executeInLateUpdate(() => { // LateUpdate 代码 });</code>
FixedUpdate
Cette solution utilise une seule instance <code class="language-csharp">UnityThread.executeInFixedUpdate(() => { // FixedUpdate 代码 });</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!